diff --git a/ruoyi-api/hwmom-api-mes/pom.xml b/ruoyi-api/hwmom-api-mes/pom.xml new file mode 100644 index 0000000..723cccf --- /dev/null +++ b/ruoyi-api/hwmom-api-mes/pom.xml @@ -0,0 +1,33 @@ + + + + org.dromara + ruoyi-api + ${revision} + + 4.0.0 + + hwmom-api-mes + + + hwmom-api-mes MES接口模块 + + + + + + + org.dromara + ruoyi-common-core + + + + org.dromara + ruoyi-common-excel + + + + + diff --git a/ruoyi-api/hwmom-api-mes/src/main/java/org/dromara/mes/api/RemoteMaterialInfoService.java b/ruoyi-api/hwmom-api-mes/src/main/java/org/dromara/mes/api/RemoteMaterialInfoService.java new file mode 100644 index 0000000..9b4b205 --- /dev/null +++ b/ruoyi-api/hwmom-api-mes/src/main/java/org/dromara/mes/api/RemoteMaterialInfoService.java @@ -0,0 +1,21 @@ +package org.dromara.mes.api; + +import org.dromara.mes.api.model.bo.BaseMaterialInfoBo; + +import java.util.List; + +/** + * 物料接口 + * + * @author Yinq + */ +public interface RemoteMaterialInfoService { + + /** + * 批量新增物料信息接口 + * @param bos + * @return true成功,false失败 + */ + Boolean remoteInsertBaseMaterialInfo(List bos); + +} diff --git a/ruoyi-api/hwmom-api-mes/src/main/java/org/dromara/mes/api/model/BaseMaterialInfo.java b/ruoyi-api/hwmom-api-mes/src/main/java/org/dromara/mes/api/model/BaseMaterialInfo.java new file mode 100644 index 0000000..5c074f7 --- /dev/null +++ b/ruoyi-api/hwmom-api-mes/src/main/java/org/dromara/mes/api/model/BaseMaterialInfo.java @@ -0,0 +1,272 @@ +package org.dromara.mes.api.model; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; + +/** + * 物料信息对象 base_material_info + * + * @author zangch + * @date 2025-01-07 + */ +@Data +public class BaseMaterialInfo { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + private Long materialId; + + /** + * ERP信息 + */ + private String erpId; + + /** + * 物料编码 + */ + private String materialCode; + + /** + * 旧物料编码 + */ + private String oldMaterialCode; + + /** + * 物料名称 + */ + private String materialName; + + /** + * 物料类型ID + */ + private Long materialTypeId; + + /** + * 物料大类(1原材料 2半成品 3成品) + */ + private String materialCategories; + + /** + * 物料小类 + */ + private String materialSubclass; + + /** + * 批次标识(0否 1是) + */ + private String batchFlag; + + /** + * 小批次数量 + */ + private Long batchAmount; + + /** + * 计量单位ID + */ + private Long materialUnitId; + + /** + * 计量单位名称 + */ + private String materialUnit; + + /** + * 物料组 + */ + private String materialMatkl; + + /** + * 物料规格 + */ + private String materialSpec; + + /** + * 净重 + */ + private Long netWeight; + + /** + * 毛重 + */ + private Long grossWeight; + + /** + * 绑定标识(1是 0否) + */ + private String alwaysFlag; + + /** + * 所属工厂 + */ + private Long factoryId; + + /** + * 创建组织 + */ + private Long createOrgId; + + /** + * 使用组织 + */ + private Long useOrgId; + + /** + * 所属产线 + */ + private Long prodLineId; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 删除标识(0否 1是) + */ + private String deletedFlag; + + /** + * 采购计价单位 + */ + private Long purchasePriceUnitId; + + /** + * 审核日期 + */ + private Date approveDate; + + /** + * erp最后更新日期 + */ + private Date erpModifyDate; + + /** + * 最大库存数量 + */ + private Long maxStockAmount; + + /** + * 最小库存数量 + */ + private Long minStockAmount; + + /** + * 安全库存数量 + */ + private Long safeStockAmount; + + /** + * 申请标识(1是 0否) + */ + private String applyFlag; + + /** + * 物料分类(1ERP同步 2虚拟物料 3MES物料) + */ + private String materialClassfication; + + /** + * 自动出库标识(1是 0否) + */ + private String autoOutstockFlag; + + /** + * 辅料标识(1是 0否) + */ + private String accessoriesFlag; + + /** + * 低值易耗品标识(1是 0否) + */ + private String lowValueConsumableFlag; + + /** + * 品牌 + */ + private String brand; + + /** + * 层级 + */ + private String plyrating; + + /** + * 花纹 + */ + private String pattern; + + /** + * 速度级别 + */ + private String speedLevel; + + /** + * 负荷载重 + */ + private String load; + + /** + * 轮胎标记(1全钢胎 2半钢胎 3工程胎) + */ + private String tireMarkings; + + /** + * 最小停放时间(秒) + */ + private Long minParkingTime; + + /** + * 最大停放时间(秒) + */ + private Long maxParkingTime; + + /** + * 标准重量 + */ + private Long standardWeight; + + /** + * 标准重量上限 + */ + private Long weightUpperLimit; + + /** + * 标准重量下限 + */ + private Long weightLowerLimit; + + /** + * 内胎标记(0无 1有) + */ + private String innerTubeFlag; + + /** + * 销售类型(0内销 1外销) + */ + private String saleType; + + /** + * 备注 + */ + private String remark; + + + /** + * 所属工厂名称 + */ + private String factoryName; //映射字段 + + /** + * 物料类型名称 + */ + private String matrialTypeName;//映射字段 + +} diff --git a/ruoyi-api/hwmom-api-mes/src/main/java/org/dromara/mes/api/model/bo/BaseMaterialInfoBo.java b/ruoyi-api/hwmom-api-mes/src/main/java/org/dromara/mes/api/model/bo/BaseMaterialInfoBo.java new file mode 100644 index 0000000..0cf3dc3 --- /dev/null +++ b/ruoyi-api/hwmom-api-mes/src/main/java/org/dromara/mes/api/model/bo/BaseMaterialInfoBo.java @@ -0,0 +1,256 @@ +package org.dromara.mes.api.model.bo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 物料信息业务对象 base_material_info + * + */ +@Data +public class BaseMaterialInfoBo implements Serializable { + + /** + * 主键标识 + */ + private Long materialId; + + /** + * ERP信息 + */ + private String erpId; + + /** + * 物料编码 + */ + private String materialCode; + + /** + * 旧物料编码 + */ + private String oldMaterialCode; + + /** + * 物料名称 + */ + private String materialName; + + /** + * 物料类型ID + */ + private Long materialTypeId; + + /** + * 物料大类(1原材料 2半成品 3成品) + */ + private String materialCategories; + + /** + * 物料小类 + */ + private String materialSubclass; + + /** + * 批次标识(0否 1是) + */ + private String batchFlag; + + /** + * 小批次数量 + */ + private Long batchAmount; + + /** + * 计量单位ID + */ + private Long materialUnitId; + + /** + * 计量单位名称 + */ + private String materialUnit; + + /** + * 物料组 + */ + private String materialMatkl; + + /** + * 物料规格 + */ + private String materialSpec; + + /** + * 净重 + */ + private Long netWeight; + + /** + * 毛重 + */ + private Long grossWeight; + + /** + * 绑定标识(1是 0否) + */ + private String alwaysFlag; + + /** + * 所属工厂 + */ + private Long factoryId; + + /** + * 创建组织 + */ + private Long createOrgId; + + /** + * 使用组织 + */ + private Long useOrgId; + + /** + * 所属产线 + */ + private Long prodLineId; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 删除标识(0否 1是) + */ + private String deletedFlag; + + /** + * 采购计价单位 + */ + private Long purchasePriceUnitId; + + /** + * 审核日期 + */ + private Date approveDate; + + /** + * erp最后更新日期 + */ + private Date erpModifyDate; + + /** + * 最大库存数量 + */ + private Long maxStockAmount; + + /** + * 最小库存数量 + */ + private Long minStockAmount; + + /** + * 安全库存数量 + */ + private Long safeStockAmount; + + /** + * 申请标识(1是 0否) + */ + private String applyFlag; + + /** + * 物料分类(1ERP同步 2虚拟物料 3MES物料) + */ + private String materialClassfication; + + /** + * 自动出库标识(1是 0否) + */ + private String autoOutstockFlag; + + /** + * 辅料标识(1是 0否) + */ + private String accessoriesFlag; + + /** + * 低值易耗品标识(1是 0否) + */ + private String lowValueConsumableFlag; + + /** + * 品牌 + */ + private String brand; + + /** + * 层级 + */ + private String plyrating; + + /** + * 花纹 + */ + private String pattern; + + /** + * 速度级别 + */ + private String speedLevel; + + /** + * 负荷载重 + */ + private String load; + + /** + * 轮胎标记(1全钢胎 2半钢胎 3工程胎) + */ + private String tireMarkings; + + /** + * 最小停放时间(秒) + */ + private Long minParkingTime; + + /** + * 最大停放时间(秒) + */ + private Long maxParkingTime; + + /** + * 标准重量 + */ + private Long standardWeight; + + /** + * 标准重量上限 + */ + private Long weightUpperLimit; + + /** + * 标准重量下限 + */ + private Long weightLowerLimit; + + /** + * 内胎标记(0无 1有) + */ + private String innerTubeFlag; + + /** + * 销售类型(0内销 1外销) + */ + private String saleType; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-api/pom.xml b/ruoyi-api/pom.xml index 8b5f0b9..fc8dc58 100644 --- a/ruoyi-api/pom.xml +++ b/ruoyi-api/pom.xml @@ -13,6 +13,7 @@ ruoyi-api-system ruoyi-api-resource ruoyi-api-workflow + hwmom-api-mes ruoyi-api diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteCodeRuleService.java b/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteCodeRuleService.java new file mode 100644 index 0000000..cbab9e4 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/RemoteCodeRuleService.java @@ -0,0 +1,17 @@ +package org.dromara.system.api; + +/** + * 编码规则服务 + * + * @author Yinq + */ +public interface RemoteCodeRuleService { + + /** + * 通过编码规则编码获取编码 + * @param codeRuleCode 编码规则编码 + * @return currentCode + */ + String selectCodeRuleCode(String codeRuleCode); + +} diff --git a/ruoyi-auth/src/main/java/org/dromara/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/org/dromara/auth/controller/TokenController.java index 8de1974..a9370d2 100644 --- a/ruoyi-auth/src/main/java/org/dromara/auth/controller/TokenController.java +++ b/ruoyi-auth/src/main/java/org/dromara/auth/controller/TokenController.java @@ -107,6 +107,22 @@ public class TokenController { return R.ok(loginVo); } + // @ApiEncrypt + @PostMapping("/pdaLogin") + public R pdaLogin(@RequestBody String body) { + LoginBody loginBody = JsonUtils.parseObject(body, LoginBody.class); + // 授权类型和客户端id + String clientId = "428a8310cd442757ae699df5d894f051"; + String grantType = "pda"; + RemoteClientVo clientVo = remoteClientService.queryByClientId(clientId); + System.out.println(clientVo.toString()); + // 校验租户 + sysLoginService.checkTenant(loginBody.getTenantId()); + // 登录 + LoginVo loginVo = IAuthStrategy.login(body, clientVo, grantType); + return R.ok(loginVo); + } + /** * 第三方登录请求 * @@ -114,8 +130,7 @@ public class TokenController { * @return 结果 */ @GetMapping("/binding/{source}") - public R authBinding(@PathVariable("source") String source, - @RequestParam String tenantId, @RequestParam String domain) { + public R authBinding(@PathVariable("source") String source, @RequestParam String tenantId, @RequestParam String domain) { SocialLoginConfigProperties obj = socialProperties.getType().get(source); if (ObjectUtil.isNull(obj)) { return R.fail(source + "平台账号暂不支持"); @@ -138,9 +153,7 @@ public class TokenController { @PostMapping("/social/callback") public R socialCallback(@RequestBody SocialLoginBody loginBody) { // 获取第三方登录信息 - AuthResponse response = SocialUtils.loginAuth( - loginBody.getSource(), loginBody.getSocialCode(), - loginBody.getSocialState(), socialProperties); + AuthResponse response = SocialUtils.loginAuth(loginBody.getSource(), loginBody.getSocialCode(), loginBody.getSocialState(), socialProperties); AuthUser authUserData = response.getData(); // 判断授权响应是否成功 if (!response.ok()) { @@ -222,8 +235,7 @@ public class TokenController { host = new URL(request.getRequestURL().toString()).getHost(); } // 根据域名进行筛选 - List list = StreamUtils.filter(voList, vo -> - StringUtils.equals(vo.getDomain(), host)); + List list = StreamUtils.filter(voList, vo -> StringUtils.equals(vo.getDomain(), host)); result.setVoList(CollUtil.isNotEmpty(list) ? list : voList); return R.ok(result); } diff --git a/ruoyi-auth/src/main/java/org/dromara/auth/service/IAuthStrategy.java b/ruoyi-auth/src/main/java/org/dromara/auth/service/IAuthStrategy.java index 28307c3..26f7490 100644 --- a/ruoyi-auth/src/main/java/org/dromara/auth/service/IAuthStrategy.java +++ b/ruoyi-auth/src/main/java/org/dromara/auth/service/IAuthStrategy.java @@ -1,6 +1,7 @@ package org.dromara.auth.service; import org.dromara.auth.domain.vo.LoginVo; +import org.dromara.auth.service.impl.PdaAuthStrategy; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.SpringUtils; import org.dromara.system.api.domain.vo.RemoteClientVo; @@ -29,6 +30,8 @@ public interface IAuthStrategy { throw new ServiceException("授权类型不正确!"); } IAuthStrategy instance = SpringUtils.getBean(beanName); + System.out.println("真实类型="+beanName); + System.out.println(instance instanceof PdaAuthStrategy); return instance.login(body, client); } diff --git a/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/PdaAuthStrategy.java b/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/PdaAuthStrategy.java new file mode 100644 index 0000000..647edca --- /dev/null +++ b/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/PdaAuthStrategy.java @@ -0,0 +1,108 @@ +package org.dromara.auth.service.impl; + +import cn.dev33.satoken.secure.BCrypt; +import cn.dev33.satoken.stp.SaLoginModel; +import cn.dev33.satoken.stp.StpUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboReference; +import org.dromara.auth.domain.vo.LoginVo; +import org.dromara.auth.form.PasswordLoginBody; +import org.dromara.auth.properties.CaptchaProperties; +import org.dromara.auth.service.IAuthStrategy; +import org.dromara.auth.service.SysLoginService; +import org.dromara.common.core.constant.Constants; +import org.dromara.common.core.constant.GlobalConstants; +import org.dromara.common.core.enums.LoginType; +import org.dromara.common.core.exception.user.CaptchaException; +import org.dromara.common.core.exception.user.CaptchaExpireException; +import org.dromara.common.core.utils.MessageUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.ValidatorUtils; +import org.dromara.common.json.utils.JsonUtils; +import org.dromara.common.redis.utils.RedisUtils; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.common.tenant.helper.TenantHelper; +import org.dromara.system.api.RemoteUserService; +import org.dromara.system.api.domain.vo.RemoteClientVo; +import org.dromara.system.api.model.LoginUser; +import org.springframework.stereotype.Service; + +/** + * 密码认证策略 + * + * @author Michelle.Chung + */ +@Slf4j +@Service("pdaAuthStrategy") +@RequiredArgsConstructor +public class PdaAuthStrategy implements IAuthStrategy { + + private final CaptchaProperties captchaProperties; + + private final SysLoginService loginService; + + @DubboReference + private RemoteUserService remoteUserService; + + @Override + public LoginVo login(String body, RemoteClientVo client) { + System.out.println("PDA service"); + PasswordLoginBody loginBody = JsonUtils.parseObject(body, PasswordLoginBody.class); + ValidatorUtils.validate(loginBody); + String tenantId = loginBody.getTenantId(); + String username = loginBody.getUsername(); + String password = loginBody.getPassword(); + String code = loginBody.getCode(); + String uuid = loginBody.getUuid(); + + // 验证码开关 + // if (captchaProperties.getEnabled()) { + // validateCaptcha(tenantId, username, code, uuid); + // } + LoginUser loginUser = TenantHelper.dynamic(tenantId, () -> { + LoginUser user = remoteUserService.getUserInfo(username, tenantId); + loginService.checkLogin(LoginType.PASSWORD, tenantId, username, () -> !BCrypt.checkpw(password, user.getPassword())); + return user; + }); + loginUser.setClientKey(client.getClientKey()); + loginUser.setDeviceType(client.getDeviceType()); + SaLoginModel model = new SaLoginModel(); + model.setDevice(client.getDeviceType()); + // 自定义分配 不同用户体系 不同 token 授权时间 不设置默认走全局 yml 配置 + // 例如: 后台用户30分钟过期 app用户1天过期 + model.setTimeout(client.getTimeout()); + model.setActiveTimeout(client.getActiveTimeout()); + model.setExtra(LoginHelper.CLIENT_KEY, client.getClientId()); + // 生成token + LoginHelper.login(loginUser, model); + + LoginVo loginVo = new LoginVo(); + loginVo.setAccessToken(StpUtil.getTokenValue()); + loginVo.setExpireIn(StpUtil.getTokenTimeout()); + loginVo.setClientId(client.getClientId()); + return loginVo; + } + + /** + * 校验验证码 + * + * @param username 用户名 + * @param code 验证码 + * @param uuid 唯一标识 + */ + private void validateCaptcha(String tenantId, String username, String code, String uuid) { + String verifyKey = GlobalConstants.CAPTCHA_CODE_KEY + StringUtils.blankToDefault(uuid, ""); + String captcha = RedisUtils.getCacheObject(verifyKey); + RedisUtils.deleteObject(verifyKey); + if (captcha == null) { + loginService.recordLogininfor(tenantId, username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire")); + throw new CaptchaExpireException(); + } + if (!code.equalsIgnoreCase(captcha)) { + loginService.recordLogininfor(tenantId, username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error")); + throw new CaptchaException(); + } + } + +} diff --git a/ruoyi-common/hwmom-common-mom/pom.xml b/ruoyi-common/hwmom-common-mom/pom.xml new file mode 100644 index 0000000..ca5a8a7 --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/pom.xml @@ -0,0 +1,37 @@ + + + + org.dromara + ruoyi-common + ${revision} + + 4.0.0 + + hwmom-common-mom + + + hwmom-common-mom 通用功能 + + + + + org.dromara + ruoyi-common-satoken + + + + org.dromara + ruoyi-common-json + + + + org.apache.dubbo + dubbo-spring-boot-starter + provided + + + + + diff --git a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/annotation/DataSyncPublish.java b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/annotation/DataSyncPublish.java new file mode 100644 index 0000000..c7f8cdc --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/annotation/DataSyncPublish.java @@ -0,0 +1,43 @@ +package org.dromara.common.annotation; + +import org.dromara.common.enums.OperatorType; + +import java.lang.annotation.*; + +/** + * 自定义数据同步记录注解 + * + * @author xins + */ +@Target({ElementType.PARAMETER, ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface DataSyncPublish { + /** + * 数据库表名称 + */ + String tableName() default ""; + + + /** + * 操作类型 + */ + OperatorType operatorType() default OperatorType.INSERT; + +// /** +// * 是否保存请求的参数 +// */ +// boolean isSaveRequestData() default true; +// +// /** +// * 是否保存响应的参数 +// */ +// boolean isSaveResponseData() default true; +// +// +// /** +// * 排除指定的请求参数 +// */ +// String[] excludeParamNames() default {}; + +} diff --git a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/aspect/DataSyncPublishAspect.java b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/aspect/DataSyncPublishAspect.java new file mode 100644 index 0000000..61a925e --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/aspect/DataSyncPublishAspect.java @@ -0,0 +1,215 @@ +package org.dromara.common.aspect; + +import cn.hutool.core.lang.Dict; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.time.StopWatch; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.AfterReturning; +import org.aspectj.lang.annotation.AfterThrowing; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Before; +import org.dromara.common.annotation.DataSyncPublish; +import org.dromara.common.json.utils.JsonUtils; +import org.springframework.boot.autoconfigure.AutoConfiguration; +import org.springframework.validation.BindingResult; +import org.springframework.web.multipart.MultipartFile; + +import java.util.Collection; +import java.util.Map; +import java.util.StringJoiner; + +/** + * 数据同步记录处理 + * + * @author xins + */ +@Slf4j +@Aspect +@AutoConfiguration +public class DataSyncPublishAspect { + + /** + * 排除敏感属性字段 + */ + public static final String[] EXCLUDE_PROPERTIES = { "password", "oldPassword", "newPassword", "confirmPassword" }; + + + /** + * 计时 key + */ + private static final ThreadLocal KEY_CACHE = new ThreadLocal<>(); + + /** + * 处理请求前执行 + */ + @Before(value = "@annotation(dataSyncPublish)") + public void doBefore(JoinPoint joinPoint, DataSyncPublish dataSyncPublish) { + StopWatch stopWatch = new StopWatch(); + KEY_CACHE.set(stopWatch); + stopWatch.start(); + } + + /** + * 处理完请求后执行 + * + * @param joinPoint 切点 + */ + @AfterReturning(pointcut = "@annotation(dataSyncPublish)", returning = "jsonResult") + public void doAfterReturning(JoinPoint joinPoint, DataSyncPublish dataSyncPublish, Object jsonResult) { + handleDataSyncPublish(joinPoint, dataSyncPublish, null, jsonResult); + } + + /** + * 拦截异常操作 + * + * @param joinPoint 切点 + * @param e 异常 + */ + @AfterThrowing(value = "@annotation(dataSyncPublish)", throwing = "e") + public void doAfterThrowing(JoinPoint joinPoint, DataSyncPublish dataSyncPublish, Exception e) { + handleDataSyncPublish(joinPoint, dataSyncPublish, e, null); + } + + protected void handleDataSyncPublish(final JoinPoint joinPoint, DataSyncPublish dataSyncPublish, final Exception e, Object jsonResult) { + try { + + System.out.println("dbname:"+dataSyncPublish.tableName()); + System.out.println("operationType:"+dataSyncPublish.operatorType().ordinal()); + String params = this.argsArrayToString(joinPoint.getArgs()); + System.out.println("params:"+params); +// // *========数据库日志=========*// +// OperLogEvent operLog = new OperLogEvent(); +// operLog.setTenantId(LoginHelper.getTenantId()); +// operLog.setStatus(BusinessStatus.SUCCESS.ordinal()); +// // 请求的地址 +// String ip = ServletUtils.getClientIP(); +// operLog.setOperIp(ip); +// operLog.setOperUrl(StringUtils.substring(ServletUtils.getRequest().getRequestURI(), 0, 255)); +// LoginUser loginUser = LoginHelper.getLoginUser(); +// operLog.setOperName(loginUser.getUsername()); +// operLog.setDeptName(loginUser.getDeptName()); +// +// if (e != null) { +// operLog.setStatus(BusinessStatus.FAIL.ordinal()); +// operLog.setErrorMsg(StringUtils.substring(e.getMessage(), 0, 2000)); +// } +// // 设置方法名称 +// String className = joinPoint.getTarget().getClass().getName(); +// String methodName = joinPoint.getSignature().getName(); +// operLog.setMethod(className + "." + methodName + "()"); +// // 设置请求方式 +// operLog.setRequestMethod(ServletUtils.getRequest().getMethod()); +// // 处理设置注解上的参数 +// getControllerMethodDescription(joinPoint, controllerLog, operLog, jsonResult); +// // 设置消耗时间 +// StopWatch stopWatch = KEY_CACHE.get(); +// stopWatch.stop(); +// operLog.setCostTime(stopWatch.getTime()); +// // 发布事件保存数据库 +// SpringUtils.context().publishEvent(operLog); + } catch (Exception exp) { + // 记录本地异常日志 + log.error("异常信息:{}", exp.getMessage()); + exp.printStackTrace(); + } finally { + KEY_CACHE.remove(); + } + } + + /** + * 获取注解中对方法的描述信息 用于Controller层注解 + * + * @param log 日志 + * @param operLog 操作日志 + * @throws Exception + */ +// public void getControllerMethodDescription(JoinPoint joinPoint, DataSyncPublish dataSyncPublish, Object jsonResult) throws Exception { +// // 设置action动作 +// operLog.setBusinessType(log.businessType().ordinal()); +// // 设置标题 +// operLog.setTitle(log.title()); +// // 设置操作人类别 +// operLog.setOperatorType(log.operatorType().ordinal()); +// // 是否需要保存request,参数和值 +// if (log.isSaveRequestData()) { +// // 获取参数的信息,传入到数据库中。 +// setRequestValue(joinPoint, operLog, log.excludeParamNames()); +// } +// // 是否需要保存response,参数和值 +// if (log.isSaveResponseData() && ObjectUtil.isNotNull(jsonResult)) { +// operLog.setJsonResult(StringUtils.substring(JsonUtils.toJsonString(jsonResult), 0, 2000)); +// } +// } + + /** + * 获取请求的参数,放到log中 + * + * @param operLog 操作日志 + * @throws Exception 异常 + */ +// private void setRequestValue(JoinPoint joinPoint, OperLogEvent operLog, String[] excludeParamNames) throws Exception { +// Map paramsMap = ServletUtils.getParamMap(ServletUtils.getRequest()); +// String requestMethod = operLog.getRequestMethod(); +// if (MapUtil.isEmpty(paramsMap) && StringUtils.equalsAny(requestMethod, HttpMethod.PUT.name(), HttpMethod.POST.name(), HttpMethod.DELETE.name())) { +// String params = argsArrayToString(joinPoint.getArgs(), excludeParamNames); +// operLog.setOperParam(StringUtils.substring(params, 0, 2000)); +// } else { +// MapUtil.removeAny(paramsMap, EXCLUDE_PROPERTIES); +// MapUtil.removeAny(paramsMap, excludeParamNames); +// operLog.setOperParam(StringUtils.substring(JsonUtils.toJsonString(paramsMap), 0, 2000)); +// } +// } + + /** + * 参数拼装 + */ + private String argsArrayToString(Object[] paramsArray) { + StringJoiner params = new StringJoiner(" "); + if (ArrayUtil.isEmpty(paramsArray)) { + return params.toString(); + } + for (Object o : paramsArray) { + if (ObjectUtil.isNotNull(o) && !isFilterObject(o)) { + String str = JsonUtils.toJsonString(o); + Dict dict = JsonUtils.parseMap(str); + if (MapUtil.isNotEmpty(dict)) { + MapUtil.removeAny(dict, EXCLUDE_PROPERTIES); + str = JsonUtils.toJsonString(dict); + } + params.add(str); + } + } + return params.toString(); + } + + /** + * 判断是否需要过滤的对象。 + * + * @param o 对象信息。 + * @return 如果是需要过滤的对象,则返回true;否则返回false。 + */ + @SuppressWarnings("rawtypes") + public boolean isFilterObject(final Object o) { + Class clazz = o.getClass(); + if (clazz.isArray()) { + return MultipartFile.class.isAssignableFrom(clazz.getComponentType()); + } else if (Collection.class.isAssignableFrom(clazz)) { + Collection collection = (Collection) o; + for (Object value : collection) { + return value instanceof MultipartFile; + } + } else if (Map.class.isAssignableFrom(clazz)) { + Map map = (Map) o; + for (Object value : map.values()) { + return value instanceof MultipartFile; + } + } + return o instanceof MultipartFile || o instanceof HttpServletRequest || o instanceof HttpServletResponse + || o instanceof BindingResult; + } +} diff --git a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/constant/DatabaseConstants.java b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/constant/DatabaseConstants.java new file mode 100644 index 0000000..c15ae45 --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/constant/DatabaseConstants.java @@ -0,0 +1,16 @@ +package org.dromara.common.constant; + +/** + * 数据库常量信息 + * + * @author ruoyi + */ +public interface DatabaseConstants { + + /** + * 生产计划表名前缀 + */ + String TABLE_NAME_PROD_PLAN_INFO_PREFIX = "prod_plan_info"; + + +} diff --git a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/enums/OperatorType.java b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/enums/OperatorType.java new file mode 100644 index 0000000..c000f9a --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/enums/OperatorType.java @@ -0,0 +1,23 @@ +package org.dromara.common.enums; + +/** + * 操作类型 + * + * @author xins + */ +public enum OperatorType { + /** + * 插入 + */ + INSERT, + + /** + * 更新 + */ + UPDATE, + + /** + * 删除 + */ + DELETE +} diff --git a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/event/DataSyncPublishEvent.java b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/event/DataSyncPublishEvent.java new file mode 100644 index 0000000..9246cf0 --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/event/DataSyncPublishEvent.java @@ -0,0 +1,34 @@ +package org.dromara.common.event; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 数据同步记录发布事件 + * + * @author xins + */ + +@Data +public class DataSyncPublishEvent implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 数据库表名称 + */ + private String tableName; + + /** + * 操作类型 + */ + private String operationType; + + /** + * 过滤时间(如果是创建,则createtime大于此时间,如果是更新,则updatetime大于此时间) + */ + private String filterTime; +} diff --git a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/event/DataSyncPublishListener.java b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/event/DataSyncPublishListener.java new file mode 100644 index 0000000..f32cbbb --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/event/DataSyncPublishListener.java @@ -0,0 +1,29 @@ +package org.dromara.common.event; + +import cn.hutool.core.bean.BeanUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboReference; +import org.dromara.system.api.RemoteLogService; +import org.dromara.system.api.domain.bo.RemoteOperLogBo; +import org.springframework.context.event.EventListener; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class DataSyncPublishListener { + + @DubboReference + private RemoteLogService remoteLogService; + + /** + * 保存系统日志记录 + */ + @EventListener + public void dataSyncPublish(DataSyncPublishEvent dataSyncPublishEvent) { +// tableName,类型,时间,删除的id; + + } + + + +} diff --git a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/mapper/DynamicBaseSqlMapper.java b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/mapper/DynamicBaseSqlMapper.java new file mode 100644 index 0000000..c29f38b --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/mapper/DynamicBaseSqlMapper.java @@ -0,0 +1,13 @@ +package org.dromara.common.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.InsertProvider; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.dromara.common.provider.DynamicBaseSqlProvider; + +@Mapper +public interface DynamicBaseSqlMapper extends BaseMapper { + // 自定义动态插入方法,接收表名和对象作为参数 + @InsertProvider(type = DynamicBaseSqlProvider.class, method = "dynamicInsert") + int dynamicInsert(@Param("tableName") String tableName, @Param("tableNamePrefix") String tableNamePrefix,@Param("entity") T entity); +} diff --git a/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/provider/DynamicBaseSqlProvider.java b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/provider/DynamicBaseSqlProvider.java new file mode 100644 index 0000000..0a35087 --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/src/main/java/org/dromara/common/provider/DynamicBaseSqlProvider.java @@ -0,0 +1,32 @@ +package org.dromara.common.provider; + +import org.apache.ibatis.jdbc.SQL; +import java.util.Map; + + +public class DynamicBaseSqlProvider { + public String dynamicInsert(Map params) { + String tableName = (String) params.get("tableName"); +// Object entity = params.get("entity"); + String tableNamePrefix = (String) params.get("tableNamePrefix"); + + SQL sql = new SQL(); + sql.INSERT_INTO(tableName); + switch(tableNamePrefix){ + case "prod_plan_info": + sql.INTO_COLUMNS("plan_code", "material_id", "material_bom_id","plan_amount","dispatch_amount"); + sql.INTO_VALUES("#{entity.planCode}", "#{entity.materialId}", "#{entity.materialBomId}", "#{entity.planAmount}", "#{entity.dispatchAmount}"); + break; + } + return sql.toString(); + } + + + public String selectByDynamicTableName(Map params) { + String tableName = (String) params.get("tableName"); + return new SQL() {{ + SELECT("*"); + FROM(tableName); + }}.toString(); + } +} diff --git a/ruoyi-common/hwmom-common-mom/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/ruoyi-common/hwmom-common-mom/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..dc8cb94 --- /dev/null +++ b/ruoyi-common/hwmom-common-mom/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,2 @@ +org.dromara.common.aspect.DataSyncPublishAspect +org.dromara.common.event.DataSyncPublishListener diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 48e0095..0feb19b 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -45,6 +45,7 @@ ruoyi-common-nacos ruoyi-common-bus ruoyi-common-sse + hwmom-common-mom ruoyi-common diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/SysConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/SysConstants.java new file mode 100644 index 0000000..429b078 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/SysConstants.java @@ -0,0 +1,21 @@ +package org.dromara.common.core.constant; + +/** + * SYS通用常量信息 + * + * @author ruoyi + */ +public interface SysConstants { + + /** + * SYS规则编码:更新标识(1不更新) + */ + String SYS_RENEW_FLAG_NO = "1"; + + /** + * SYS规则编码:(2每日更新) + */ + String SYS_RENEW_FLAG_DAY = "2"; + +} + diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/StringUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/StringUtils.java index dd6ebb1..f959383 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/StringUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/StringUtils.java @@ -320,4 +320,26 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils { .collect(Collectors.toList()); } + /** + * * 判断一个对象是否为空 + * + * @param object Object + * @return true:为空 false:非空 + */ + public static boolean isNull(Object object) + { + return object == null; + } + + /** + * * 判断一个对象是否非空 + * + * @param object Object + * @return true:非空 false:空 + */ + public static boolean isNotNull(Object object) + { + return !isNull(object); + } + } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/uuid/IdUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/uuid/IdUtils.java new file mode 100644 index 0000000..29f7d96 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/uuid/IdUtils.java @@ -0,0 +1,49 @@ +package org.dromara.common.core.utils.uuid; + +/** + * ID生成器工具类 + * + * @author ruoyi + */ +public class IdUtils +{ + /** + * 获取随机UUID + * + * @return 随机UUID + */ + public static String randomUUID() + { + return UUID.randomUUID().toString(); + } + + /** + * 简化的UUID,去掉了横线 + * + * @return 简化的UUID,去掉了横线 + */ + public static String simpleUUID() + { + return UUID.randomUUID().toString(true); + } + + /** + * 获取随机UUID,使用性能更好的ThreadLocalRandom生成UUID + * + * @return 随机UUID + */ + public static String fastUUID() + { + return UUID.fastUUID().toString(); + } + + /** + * 简化的UUID,去掉了横线,使用性能更好的ThreadLocalRandom生成UUID + * + * @return 简化的UUID,去掉了横线 + */ + public static String fastSimpleUUID() + { + return UUID.fastUUID().toString(true); + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/uuid/Seq.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/uuid/Seq.java new file mode 100644 index 0000000..5b145c1 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/uuid/Seq.java @@ -0,0 +1,134 @@ +package org.dromara.common.core.utils.uuid; + + +import org.dromara.common.core.utils.DateUtils; +import org.dromara.common.core.utils.StringUtils; + +import java.util.concurrent.atomic.AtomicInteger; + +/** + * @author ruoyi 序列生成类 + */ +public class Seq { + // 通用序列类型 + public static final String commSeqType = "COMMON"; + + // 上传序列类型 + public static final String uploadSeqType = "UPLOAD"; + + // 通用接口序列数 + private static AtomicInteger commSeq = new AtomicInteger(1); + + // 上传接口序列数 + private static AtomicInteger uploadSeq = new AtomicInteger(1); + + // 机器标识 + private static final String machineCode = "A"; + + // 计划编号记录标识 + public static final String mesPlanCodeSeqType = "MES_PLAN_CODE"; + + // 计划编号序列数 + private static AtomicInteger mesPlanCodeSeq = new AtomicInteger(1); + + // 计划编号标识 + public static final String mesPlanCodeCode = "PL"; + + /** + * 获取通用序列号 + * + * @return 序列值 + */ + public static String getId() { + return getId(commSeqType); + } + + /** + * 默认16位序列号 yyMMddHHmmss + 一位机器标识 + 3长度循环递增字符串 + * + * @return 序列值 + */ + public static String getId(String type) { + AtomicInteger atomicInt = commSeq; + if (uploadSeqType.equals(type)) { + atomicInt = uploadSeq; + } + return getId(atomicInt, 3); + } + + /** + * 通用接口序列号 yyMMddHHmmss + 一位机器标识 + length长度循环递增字符串 + * + * @param atomicInt 序列数 + * @param length 数值长度 + * @return 序列值 + */ + public static String getId(AtomicInteger atomicInt, int length) { + String result = DateUtils.dateTimeNow(); + result += machineCode; + result += getSeq(atomicInt, length); + return result; + } + + /** + * 序列循环递增字符串[1, 10 的 (length)幂次方), 用0左补齐length位数 + * + * @return 序列值 + */ + private synchronized static String getSeq(AtomicInteger atomicInt, int length) { + // 先取值再+1 + int value = atomicInt.getAndIncrement(); + + // 如果更新后值>=10 的 (length)幂次方则重置为1 + int maxSeq = (int) Math.pow(10, length); + if (atomicInt.get() >= maxSeq) { + atomicInt.set(1); + } + // 转字符串,用0左补齐 + return StringUtils.padl(value, length); + } + + + /** + * 默认16位序列号 yyMMddHHmmss + 一位机器标识 + 3长度循环递增字符串 + * + * @return 序列值 + */ + public static String getId(String type,String code) { + AtomicInteger atomicInt = commSeq; + if (mesPlanCodeSeqType.equals(type)) { + atomicInt = mesPlanCodeSeq; + } + return getId(atomicInt, 4, code); + } + + + /** + * 通用接口序列号 yyMMddHHmmss + 一位机器标识 + length长度循环递增字符串 + * + * @param atomicInt 序列数 + * @param length 数值长度 + * @return 序列值 + */ + public static String getId(AtomicInteger atomicInt, int length, String code) { + String result = DateUtils.dateTimeNow(); + result += code; + result += getSeq(atomicInt, length); + return result; + } + + /** + * 通用接口序列号 前缀+yyMMdd + length长度循环递增字符串 + * + * @param atomicInt 序列数 + * @param length 数值长度 + * @return 序列值 + */ + public static String getNewId(AtomicInteger atomicInt, int length, String code) { + String result = code; + result += DateUtils.dateTime(); + result += getSeq(atomicInt, length); + return result; + } + +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/uuid/UUID.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/uuid/UUID.java new file mode 100644 index 0000000..660683a --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/uuid/UUID.java @@ -0,0 +1,486 @@ +package org.dromara.common.core.utils.uuid; + + +import cn.hutool.core.exceptions.UtilException; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; +import java.util.Random; +import java.util.concurrent.ThreadLocalRandom; + +/** + * 提供通用唯一识别码(universally unique identifier)(UUID)实现 + * + * @author ruoyi + */ +public final class UUID implements java.io.Serializable, Comparable +{ + private static final long serialVersionUID = -1185015143654744140L; + + /** + * SecureRandom 的单例 + * + */ + private static class Holder + { + static final SecureRandom numberGenerator = getSecureRandom(); + } + + /** 此UUID的最高64有效位 */ + private final long mostSigBits; + + /** 此UUID的最低64有效位 */ + private final long leastSigBits; + + /** + * 私有构造 + * + * @param data 数据 + */ + private UUID(byte[] data) + { + long msb = 0; + long lsb = 0; + assert data.length == 16 : "data must be 16 bytes in length"; + for (int i = 0; i < 8; i++) + { + msb = (msb << 8) | (data[i] & 0xff); + } + for (int i = 8; i < 16; i++) + { + lsb = (lsb << 8) | (data[i] & 0xff); + } + this.mostSigBits = msb; + this.leastSigBits = lsb; + } + + /** + * 使用指定的数据构造新的 UUID。 + * + * @param mostSigBits 用于 {@code UUID} 的最高有效 64 位 + * @param leastSigBits 用于 {@code UUID} 的最低有效 64 位 + */ + public UUID(long mostSigBits, long leastSigBits) + { + this.mostSigBits = mostSigBits; + this.leastSigBits = leastSigBits; + } + + /** + * 获取类型 4(伪随机生成的)UUID 的静态工厂。 + * + * @return 随机生成的 {@code UUID} + */ + public static UUID fastUUID() + { + return randomUUID(false); + } + + /** + * 获取类型 4(伪随机生成的)UUID 的静态工厂。 使用加密的强伪随机数生成器生成该 UUID。 + * + * @return 随机生成的 {@code UUID} + */ + public static UUID randomUUID() + { + return randomUUID(true); + } + + /** + * 获取类型 4(伪随机生成的)UUID 的静态工厂。 使用加密的强伪随机数生成器生成该 UUID。 + * + * @param isSecure 是否使用{@link SecureRandom}如果是可以获得更安全的随机码,否则可以得到更好的性能 + * @return 随机生成的 {@code UUID} + */ + public static UUID randomUUID(boolean isSecure) + { + final Random ng = isSecure ? Holder.numberGenerator : getRandom(); + + byte[] randomBytes = new byte[16]; + ng.nextBytes(randomBytes); + randomBytes[6] &= 0x0f; /* clear version */ + randomBytes[6] |= 0x40; /* set to version 4 */ + randomBytes[8] &= 0x3f; /* clear variant */ + randomBytes[8] |= 0x80; /* set to IETF variant */ + return new UUID(randomBytes); + } + + /** + * 根据指定的字节数组获取类型 3(基于名称的)UUID 的静态工厂。 + * + * @param name 用于构造 UUID 的字节数组。 + * + * @return 根据指定数组生成的 {@code UUID} + */ + public static UUID nameUUIDFromBytes(byte[] name) + { + MessageDigest md; + try + { + md = MessageDigest.getInstance("MD5"); + } + catch (NoSuchAlgorithmException nsae) + { + throw new InternalError("MD5 not supported"); + } + byte[] md5Bytes = md.digest(name); + md5Bytes[6] &= 0x0f; /* clear version */ + md5Bytes[6] |= 0x30; /* set to version 3 */ + md5Bytes[8] &= 0x3f; /* clear variant */ + md5Bytes[8] |= 0x80; /* set to IETF variant */ + return new UUID(md5Bytes); + } + + /** + * 根据 {@link #toString()} 方法中描述的字符串标准表示形式创建{@code UUID}。 + * + * @param name 指定 {@code UUID} 字符串 + * @return 具有指定值的 {@code UUID} + * @throws IllegalArgumentException 如果 name 与 {@link #toString} 中描述的字符串表示形式不符抛出此异常 + * + */ + public static UUID fromString(String name) + { + String[] components = name.split("-"); + if (components.length != 5) + { + throw new IllegalArgumentException("Invalid UUID string: " + name); + } + for (int i = 0; i < 5; i++) + { + components[i] = "0x" + components[i]; + } + + long mostSigBits = Long.decode(components[0]).longValue(); + mostSigBits <<= 16; + mostSigBits |= Long.decode(components[1]).longValue(); + mostSigBits <<= 16; + mostSigBits |= Long.decode(components[2]).longValue(); + + long leastSigBits = Long.decode(components[3]).longValue(); + leastSigBits <<= 48; + leastSigBits |= Long.decode(components[4]).longValue(); + + return new UUID(mostSigBits, leastSigBits); + } + + /** + * 返回此 UUID 的 128 位值中的最低有效 64 位。 + * + * @return 此 UUID 的 128 位值中的最低有效 64 位。 + */ + public long getLeastSignificantBits() + { + return leastSigBits; + } + + /** + * 返回此 UUID 的 128 位值中的最高有效 64 位。 + * + * @return 此 UUID 的 128 位值中最高有效 64 位。 + */ + public long getMostSignificantBits() + { + return mostSigBits; + } + + /** + * 与此 {@code UUID} 相关联的版本号. 版本号描述此 {@code UUID} 是如何生成的。 + *

+ * 版本号具有以下含意: + *

    + *
  • 1 基于时间的 UUID + *
  • 2 DCE 安全 UUID + *
  • 3 基于名称的 UUID + *
  • 4 随机生成的 UUID + *
+ * + * @return 此 {@code UUID} 的版本号 + */ + public int version() + { + // Version is bits masked by 0x000000000000F000 in MS long + return (int) ((mostSigBits >> 12) & 0x0f); + } + + /** + * 与此 {@code UUID} 相关联的变体号。变体号描述 {@code UUID} 的布局。 + *

+ * 变体号具有以下含意: + *

    + *
  • 0 为 NCS 向后兼容保留 + *
  • 2 IETF RFC 4122(Leach-Salz), 用于此类 + *
  • 6 保留,微软向后兼容 + *
  • 7 保留供以后定义使用 + *
+ * + * @return 此 {@code UUID} 相关联的变体号 + */ + public int variant() + { + // This field is composed of a varying number of bits. + // 0 - - Reserved for NCS backward compatibility + // 1 0 - The IETF aka Leach-Salz variant (used by this class) + // 1 1 0 Reserved, Microsoft backward compatibility + // 1 1 1 Reserved for future definition. + return (int) ((leastSigBits >>> (64 - (leastSigBits >>> 62))) & (leastSigBits >> 63)); + } + + /** + * 与此 UUID 相关联的时间戳值。 + * + *

+ * 60 位的时间戳值根据此 {@code UUID} 的 time_low、time_mid 和 time_hi 字段构造。
+ * 所得到的时间戳以 100 毫微秒为单位,从 UTC(通用协调时间) 1582 年 10 月 15 日零时开始。 + * + *

+ * 时间戳值仅在在基于时间的 UUID(其 version 类型为 1)中才有意义。
+ * 如果此 {@code UUID} 不是基于时间的 UUID,则此方法抛出 UnsupportedOperationException。 + * + * @throws UnsupportedOperationException 如果此 {@code UUID} 不是 version 为 1 的 UUID。 + */ + public long timestamp() throws UnsupportedOperationException + { + checkTimeBase(); + return (mostSigBits & 0x0FFFL) << 48// + | ((mostSigBits >> 16) & 0x0FFFFL) << 32// + | mostSigBits >>> 32; + } + + /** + * 与此 UUID 相关联的时钟序列值。 + * + *

+ * 14 位的时钟序列值根据此 UUID 的 clock_seq 字段构造。clock_seq 字段用于保证在基于时间的 UUID 中的时间唯一性。 + *

+ * {@code clockSequence} 值仅在基于时间的 UUID(其 version 类型为 1)中才有意义。 如果此 UUID 不是基于时间的 UUID,则此方法抛出 + * UnsupportedOperationException。 + * + * @return 此 {@code UUID} 的时钟序列 + * + * @throws UnsupportedOperationException 如果此 UUID 的 version 不为 1 + */ + public int clockSequence() throws UnsupportedOperationException + { + checkTimeBase(); + return (int) ((leastSigBits & 0x3FFF000000000000L) >>> 48); + } + + /** + * 与此 UUID 相关的节点值。 + * + *

+ * 48 位的节点值根据此 UUID 的 node 字段构造。此字段旨在用于保存机器的 IEEE 802 地址,该地址用于生成此 UUID 以保证空间唯一性。 + *

+ * 节点值仅在基于时间的 UUID(其 version 类型为 1)中才有意义。
+ * 如果此 UUID 不是基于时间的 UUID,则此方法抛出 UnsupportedOperationException。 + * + * @return 此 {@code UUID} 的节点值 + * + * @throws UnsupportedOperationException 如果此 UUID 的 version 不为 1 + */ + public long node() throws UnsupportedOperationException + { + checkTimeBase(); + return leastSigBits & 0x0000FFFFFFFFFFFFL; + } + + /** + * 返回此{@code UUID} 的字符串表现形式。 + * + *

+ * UUID 的字符串表示形式由此 BNF 描述: + * + *

+     * {@code
+     * UUID                   = ----
+     * time_low               = 4*
+     * time_mid               = 2*
+     * time_high_and_version  = 2*
+     * variant_and_sequence   = 2*
+     * node                   = 6*
+     * hexOctet               = 
+     * hexDigit               = [0-9a-fA-F]
+     * }
+     * 
+ * + * + * + * @return 此{@code UUID} 的字符串表现形式 + * @see #toString(boolean) + */ + @Override + public String toString() + { + return toString(false); + } + + /** + * 返回此{@code UUID} 的字符串表现形式。 + * + *

+ * UUID 的字符串表示形式由此 BNF 描述: + * + *

+     * {@code
+     * UUID                   = ----
+     * time_low               = 4*
+     * time_mid               = 2*
+     * time_high_and_version  = 2*
+     * variant_and_sequence   = 2*
+     * node                   = 6*
+     * hexOctet               = 
+     * hexDigit               = [0-9a-fA-F]
+     * }
+     * 
+ * + * + * + * @param isSimple 是否简单模式,简单模式为不带'-'的UUID字符串 + * @return 此{@code UUID} 的字符串表现形式 + */ + public String toString(boolean isSimple) + { + final StringBuilder builder = new StringBuilder(isSimple ? 32 : 36); + // time_low + builder.append(digits(mostSigBits >> 32, 8)); + if (false == isSimple) + { + builder.append('-'); + } + // time_mid + builder.append(digits(mostSigBits >> 16, 4)); + if (false == isSimple) + { + builder.append('-'); + } + // time_high_and_version + builder.append(digits(mostSigBits, 4)); + if (false == isSimple) + { + builder.append('-'); + } + // variant_and_sequence + builder.append(digits(leastSigBits >> 48, 4)); + if (false == isSimple) + { + builder.append('-'); + } + // node + builder.append(digits(leastSigBits, 12)); + + return builder.toString(); + } + + /** + * 返回此 UUID 的哈希码。 + * + * @return UUID 的哈希码值。 + */ + @Override + public int hashCode() + { + long hilo = mostSigBits ^ leastSigBits; + return ((int) (hilo >> 32)) ^ (int) hilo; + } + + /** + * 将此对象与指定对象比较。 + *

+ * 当且仅当参数不为 {@code null}、而是一个 UUID 对象、具有与此 UUID 相同的 varriant、包含相同的值(每一位均相同)时,结果才为 {@code true}。 + * + * @param obj 要与之比较的对象 + * + * @return 如果对象相同,则返回 {@code true};否则返回 {@code false} + */ + @Override + public boolean equals(Object obj) + { + if ((null == obj) || (obj.getClass() != UUID.class)) + { + return false; + } + UUID id = (UUID) obj; + return (mostSigBits == id.mostSigBits && leastSigBits == id.leastSigBits); + } + + // Comparison Operations + + /** + * 将此 UUID 与指定的 UUID 比较。 + * + *

+ * 如果两个 UUID 不同,且第一个 UUID 的最高有效字段大于第二个 UUID 的对应字段,则第一个 UUID 大于第二个 UUID。 + * + * @param val 与此 UUID 比较的 UUID + * + * @return 在此 UUID 小于、等于或大于 val 时,分别返回 -1、0 或 1。 + * + */ + @Override + public int compareTo(UUID val) + { + // The ordering is intentionally set up so that the UUIDs + // can simply be numerically compared as two numbers + return (this.mostSigBits < val.mostSigBits ? -1 : // + (this.mostSigBits > val.mostSigBits ? 1 : // + (this.leastSigBits < val.leastSigBits ? -1 : // + (this.leastSigBits > val.leastSigBits ? 1 : // + 0)))); + } + + // ------------------------------------------------------------------------------------------------------------------- + // Private method start + /** + * 返回指定数字对应的hex值 + * + * @param val 值 + * @param digits 位 + * @return 值 + */ + private static String digits(long val, int digits) + { + long hi = 1L << (digits * 4); + return Long.toHexString(hi | (val & (hi - 1))).substring(1); + } + + /** + * 检查是否为time-based版本UUID + */ + private void checkTimeBase() + { + if (version() != 1) + { + throw new UnsupportedOperationException("Not a time-based UUID"); + } + } + + /** + * 获取{@link SecureRandom},类提供加密的强随机数生成器 (RNG) + * + * @return {@link SecureRandom} + */ + public static SecureRandom getSecureRandom() + { + try + { + return SecureRandom.getInstance("SHA1PRNG"); + } + catch (NoSuchAlgorithmException e) + { + throw new UtilException(e); + } + } + + /** + * 获取随机数生成器对象
+ * ThreadLocalRandom是JDK 7之后提供并发产生随机数,能够解决多个线程发生的竞争争夺。 + * + * @return {@link ThreadLocalRandom} + */ + public static ThreadLocalRandom getRandom() + { + return ThreadLocalRandom.current(); + } +} diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/annotation/Log.java b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/annotation/Log.java index 2dced97..20da2c2 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/annotation/Log.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/annotation/Log.java @@ -45,4 +45,7 @@ public @interface Log { */ String[] excludeParamNames() default {}; + String tableName() default ""; + + } diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/aspect/LogAspect.java b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/aspect/LogAspect.java index eb81dfe..22f727c 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/aspect/LogAspect.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/aspect/LogAspect.java @@ -113,7 +113,13 @@ public class LogAspect { // 设置消耗时间 StopWatch stopWatch = KEY_CACHE.get(); stopWatch.stop(); - operLog.setCostTime(stopWatch.getTime()); + operLog.setCostTime(stopWatch.getTime());//毫秒(1毫秒=1000000纳秒nano) + + + operLog.setSimpleClassName(joinPoint.getTarget().getClass().getSimpleName()); + operLog.setTableName(controllerLog.tableName()); + + // 发布事件保存数据库 SpringUtils.context().publishEvent(operLog); } catch (Exception exp) { diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/LogEventListener.java b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/LogEventListener.java index 3584e0c..7f6da25 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/LogEventListener.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/LogEventListener.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.http.useragent.UserAgent; import cn.hutool.http.useragent.UserAgentUtil; +import com.alibaba.fastjson2.JSONObject; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; @@ -11,6 +12,9 @@ import org.dromara.common.core.constant.Constants; import org.dromara.common.core.utils.ServletUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.ip.AddressUtils; +import org.dromara.common.log.enums.BusinessStatus; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.redis.utils.RedisUtils; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.system.api.RemoteClientService; import org.dromara.system.api.RemoteLogService; @@ -20,6 +24,10 @@ import org.dromara.system.api.domain.vo.RemoteClientVo; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + /** * 异步调用日志服务 * @@ -34,6 +42,11 @@ public class LogEventListener { @DubboReference private RemoteClientService remoteClientService; + public static final Map TABLE_ID_MAP = new HashMap<>(); + static { + TABLE_ID_MAP.put("base_class_team_info", "class_team_id"); + } + /** * 保存系统日志记录 */ @@ -41,6 +54,45 @@ public class LogEventListener { public void saveLog(OperLogEvent operLogEvent) { RemoteOperLogBo sysOperLog = BeanUtil.toBean(operLogEvent, RemoteOperLogBo.class); remoteLogService.saveLog(sysOperLog); + this.dataSyncPublish(operLogEvent); + } + + + private void dataSyncPublish(OperLogEvent operLogEvent) { + /** + * 默认所有表都需要同步到机台本地,如果有需要不同的话,可以配置在redis中、内存中或者数据库中 + */ + Integer status = operLogEvent.getStatus(); + Integer businessType = operLogEvent.getBusinessType(); + if (status.equals(BusinessStatus.SUCCESS.ordinal()) + && !businessType.equals(BusinessType.OTHER.ordinal()) && !businessType.equals(BusinessType.EXPORT.ordinal()) + && !businessType.equals(BusinessType.GENCODE.ordinal()) && !businessType.equals(BusinessType.FORCE.ordinal())) { + JSONObject daySyncPublishJson = new JSONObject(); + String tableName = operLogEvent.getTableName(); + + if (StringUtils.isEmpty(tableName)) { + String simpleClassName = operLogEvent.getSimpleClassName(); + simpleClassName = simpleClassName.replaceFirst("Controller", ""); + tableName = camelToSnake(simpleClassName); + } + + long costTime = operLogEvent.getCostTime(); + long filterTimeL = System.currentTimeMillis() - costTime - 60000;//多减1分钟 + + daySyncPublishJson.put("tableName", "["+tableName+"]"); + daySyncPublishJson.put("filterTime", filterTimeL); + daySyncPublishJson.put("businessType", operLogEvent.getBusinessType()); + if (businessType.equals(BusinessType.DELETE.ordinal())) { + String tableId = TABLE_ID_MAP.get(tableName); + if (StringUtils.isNotEmpty(tableId)) { + daySyncPublishJson.put(tableId, operLogEvent.getOperParam()); + } + } + + RedisUtils.setCacheObject("publish", daySyncPublishJson.toString()); + + } + } /** @@ -100,4 +152,31 @@ public class LogEventListener { return "[" + msg + "]"; } + + public static String camelToSnake(String str) { + if (str == null || str.isEmpty()) { + return str; + } + + StringBuilder result = new StringBuilder(); + char[] charArray = str.toCharArray(); + + for (int i = 0; i < charArray.length; i++) { + char ch = charArray[i]; + if (Character.isUpperCase(ch)) { + // 如果不是字符串的第一个字符,则在前面加上下划线 + if (i != 0) { + result.append("_"); + } + // 将大写字母转为小写并追加到结果中 + result.append(Character.toLowerCase(ch)); + } else { + // 直接追加非大写的字符 + result.append(ch); + } + } + + return result.toString(); + } + } diff --git a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/OperLogEvent.java b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/OperLogEvent.java index 0386192..f6f01e0 100644 --- a/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/OperLogEvent.java +++ b/ruoyi-common/ruoyi-common-log/src/main/java/org/dromara/common/log/event/OperLogEvent.java @@ -112,4 +112,15 @@ public class OperLogEvent implements Serializable { * 消耗时间 */ private Long costTime; + + /** + * 类名(不包含package) + */ + private String simpleClassName; + + /** + * 表名 + */ + private String tableName; + } diff --git a/ruoyi-modules/hwmom-api/pom.xml b/ruoyi-modules/hwmom-api/pom.xml new file mode 100644 index 0000000..2cd6c77 --- /dev/null +++ b/ruoyi-modules/hwmom-api/pom.xml @@ -0,0 +1,149 @@ + + + + org.dromara + ruoyi-modules + ${revision} + + 4.0.0 + + hwmom-api + + + hwmom-api系统模块 + + + + + + org.dromara + ruoyi-common-nacos + + + + org.dromara + ruoyi-common-sentinel + + + + + org.dromara + ruoyi-common-log + + + + org.dromara + ruoyi-common-dict + + + + org.dromara + ruoyi-common-doc + + + + org.dromara + ruoyi-common-web + + + + org.dromara + ruoyi-common-mybatis + + + + org.dromara + ruoyi-common-dubbo + + + + org.dromara + ruoyi-common-seata + + + + org.dromara + ruoyi-common-idempotent + + + + org.dromara + ruoyi-common-tenant + + + + org.dromara + ruoyi-common-security + + + + org.dromara + ruoyi-common-translation + + + + org.dromara + ruoyi-common-sensitive + + + + org.dromara + ruoyi-common-encrypt + + + + + org.dromara + ruoyi-api-system + + + + org.dromara + ruoyi-api-resource + + + + + + + + + com.microsoft.sqlserver + mssql-jdbc + + + + org.dromara + hwmom-api-mes + 2.2.2 + compile + + + + org.dromara + ruoyi-common-job + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot.version} + + + + repackage + + + + + + + + diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/HwMomApiApplication.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/HwMomApiApplication.java new file mode 100644 index 0000000..a79da95 --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/HwMomApiApplication.java @@ -0,0 +1,22 @@ +package org.dromara.api; + +import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup; + +/** + * 系统模块 + * + * @author ruoyi + */ +@EnableDubbo +@SpringBootApplication +public class HwMomApiApplication { + public static void main(String[] args) { + SpringApplication application = new SpringApplication(HwMomApiApplication.class); + application.setApplicationStartup(new BufferingApplicationStartup(2048)); + application.run(args); + System.out.println("(♥◠‿◠)ノ゙ HwApi启动成功 ლ(´ڡ`ლ)゙ "); + } +} diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/controller/BaseMaterialInfoApiController.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/controller/BaseMaterialInfoApiController.java new file mode 100644 index 0000000..9f03d28 --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/controller/BaseMaterialInfoApiController.java @@ -0,0 +1,41 @@ +package org.dromara.api.controller; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboReference; +import org.dromara.api.service.IBaseMaterialInfoApiService; +import org.dromara.mes.api.RemoteMaterialInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; + + +/** + * 车间信息 + * 前端访问路由地址为:/mes/baseWorkshopInfo + * + * @author Yinq + * @date 2025-01-02 + */ +@Slf4j +@RequiredArgsConstructor +@RestController +@RequestMapping("/materialInfoApi") +public class BaseMaterialInfoApiController extends BaseController { + + + + @Autowired + private final IBaseMaterialInfoApiService materialInfoApiService; + + + /** + * 测试物料信息存储接口 + */ + @PostMapping ("/test") + public String test(String requestBody) { + return materialInfoApiService.insertApi(requestBody); + } + +} diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/sap/SAPPortDto.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/sap/SAPPortDto.java new file mode 100644 index 0000000..fc623bd --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/sap/SAPPortDto.java @@ -0,0 +1,56 @@ +package org.dromara.api.domain.sap; + +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * @Author YinQ + * @create 2023-09-26 14:46 + */ +public class SAPPortDto { + + private static final long serialVersionUID = 1L; + + /** + * 开始时间 + */ + @JsonProperty(value = "NDATE") + private String startDate; + + /** + * 结束时间 + */ + @JsonProperty(value = "EDATE") + private String endDate; + + + /** + * 工厂编号 + */ + @JsonProperty(value = "WERKS") + private WERKSDto factoryCodes; + + + public String getStartDate() { + return startDate; + } + + public void setStartDate(String startDate) { + this.startDate = startDate; + } + + public String getEndDate() { + return endDate; + } + + public void setEndDate(String endDate) { + this.endDate = endDate; + } + + public WERKSDto getFactoryCodes() { + return factoryCodes; + } + + public void setFactoryCodes(WERKSDto factoryCodes) { + this.factoryCodes = factoryCodes; + } +} diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/sap/WERKSDto.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/sap/WERKSDto.java new file mode 100644 index 0000000..03946c1 --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/sap/WERKSDto.java @@ -0,0 +1,33 @@ +package org.dromara.api.domain.sap; + +import java.util.HashMap; +import java.util.List; + +/** + * @Author YinQ + * @create 2023-09-26 15:13 + */ +public class WERKSDto { + + + /** + * 工厂请求Map + */ + List> item; + + + public List> getItem() { + return item; + } + + public void setItem(List> item) { + this.item = item; + } + + @Override + public String toString() { + return "WERKSDto{" + + "item=" + item + + '}'; + } +} diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/sap/vo/SAPResultVo.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/sap/vo/SAPResultVo.java new file mode 100644 index 0000000..bdcf0c2 --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/domain/sap/vo/SAPResultVo.java @@ -0,0 +1,61 @@ +package org.dromara.api.domain.sap.vo; + +import com.fasterxml.jackson.annotation.JsonProperty; +import org.dromara.api.domain.sap.WERKSDto; + +import java.util.HashMap; +import java.util.List; + +/** + * 物料主数据 + * + * @Author YinQ + * @create 2023-09-27 13:37 + */ +public class SAPResultVo { + + @JsonProperty(value = "O_TAB") + private HashMap>> O_TAB; + + @JsonProperty(value = "WERKS") + private WERKSDto WERKS; + + @JsonProperty(value = "O_RETURN") + private WERKSDto O_RETURN; + + public HashMap>> getO_TAB() { + return O_TAB; + } + + public void setO_TAB(HashMap>> o_TAB) { + O_TAB = o_TAB; + } + + public WERKSDto getWERKS() { + return WERKS; + } + + public void setWERKS(WERKSDto WERKS) { + this.WERKS = WERKS; + } + + public WERKSDto getO_RETURN() { + return O_RETURN; + } + + public void setO_RETURN(WERKSDto o_RETURN) { + O_RETURN = o_RETURN; + } + + public SAPResultVo() { + } + + @Override + public String toString() { + return "SAPResultVo{" + + "O_TAB=" + O_TAB + + ", WERKS='" + WERKS + '\'' + + ", O_RETURN=" + O_RETURN + + '}'; + } +} diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/IBaseMaterialInfoApiService.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/IBaseMaterialInfoApiService.java new file mode 100644 index 0000000..22b3e5a --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/IBaseMaterialInfoApiService.java @@ -0,0 +1,14 @@ +package org.dromara.api.service; + + +/** + * API物料Service接口 + * + * @author Yinq + * @date 2025-01-02 + */ +public interface IBaseMaterialInfoApiService { + + String insertApi(String requestBody); + +} diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/ICommonApiService.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/ICommonApiService.java new file mode 100644 index 0000000..c5a3950 --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/ICommonApiService.java @@ -0,0 +1,23 @@ +package org.dromara.api.service; + +import org.dromara.api.domain.sap.SAPPortDto; +import org.dromara.mes.api.model.bo.BaseMaterialInfoBo; + +import java.util.List; + +/** + * 通用APIService接口 + * + * @author Yinq + * @date 2025-01-02 + */ +public interface ICommonApiService { + + + String getSAPData(SAPPortDto sapPortDto); + + + List convertSAPToMaterialEntity(String json); + + +} diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/impl/BaseMaterialInfoApiServiceImpl.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/impl/BaseMaterialInfoApiServiceImpl.java new file mode 100644 index 0000000..6052085 --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/impl/BaseMaterialInfoApiServiceImpl.java @@ -0,0 +1,53 @@ +package org.dromara.api.service.impl; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import org.apache.dubbo.config.annotation.DubboReference; +import org.dromara.api.domain.sap.SAPPortDto; +import org.dromara.api.domain.sap.vo.SAPResultVo; +import org.dromara.api.service.IBaseMaterialInfoApiService; + +import lombok.RequiredArgsConstructor; +import org.dromara.api.service.ICommonApiService; +import org.dromara.api.utils.SAPApiUtils; +import org.dromara.api.utils.SAPConstants; +import org.dromara.mes.api.RemoteMaterialInfoService; +import org.dromara.mes.api.model.bo.BaseMaterialInfoBo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +/** + * API物料Service业务层处理 + * + * @author Yinq + * @date 2025-01-02 + */ +@RequiredArgsConstructor +@Service +public class BaseMaterialInfoApiServiceImpl implements IBaseMaterialInfoApiService { + + @Autowired + private final ICommonApiService commonApiService; + + @DubboReference + private final RemoteMaterialInfoService remoteMaterialInfoService; + + @Override + public String insertApi(String requestBody) { + SAPPortDto sapPortDto = new SAPPortDto(); + //请求API接口,获取数据 + String json = commonApiService.getSAPData(sapPortDto); + //解析数据,存储实体类 + List list = commonApiService.convertSAPToMaterialEntity(json); + remoteMaterialInfoService.remoteInsertBaseMaterialInfo(list); + return "success"; + } + + + +} diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/impl/CommonApiServiceImpl.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/impl/CommonApiServiceImpl.java new file mode 100644 index 0000000..157dab5 --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/service/impl/CommonApiServiceImpl.java @@ -0,0 +1,77 @@ +package org.dromara.api.service.impl; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import org.dromara.api.domain.sap.SAPPortDto; +import org.dromara.api.domain.sap.vo.SAPResultVo; +import org.dromara.api.service.ICommonApiService; +import org.dromara.api.utils.SAPApiUtils; +import org.dromara.api.utils.SAPConstants; +import org.dromara.mes.api.model.bo.BaseMaterialInfoBo; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + + +/** + * 通用APIService接口 + * + * @author Yinq + * @date 2025-01-02 + */ +@Service +public class CommonApiServiceImpl implements ICommonApiService { + + + @Override + public String getSAPData(SAPPortDto sapPortDto) { + String requestParam = null; + String result = null; + try { + //获取物料API + + // 创建ObjectMapper实例 对象转JSON字符串 + ObjectMapper objectMapper = new ObjectMapper(); + // 格式化输出 + objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true); + requestParam = objectMapper.writeValueAsString(sapPortDto); + result = SAPApiUtils.sendSAPHttpPost(SAPConstants.SAP_PREFIX_URL + SAPConstants.MATERIAL_URL, requestParam); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + return result; + } + + @Override + public List convertSAPToMaterialEntity(String json) { + SAPResultVo resultVo = null; + try { + // 处理接口返回消息 + ObjectMapper resultMapper = new ObjectMapper(); + // 将 JSON 字符串 转换为 Java 对象 + resultVo = resultMapper.readValue(json, SAPResultVo.class); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + List materialInfoArrayList = new ArrayList<>(); + assert resultVo != null; + List> itemList = resultVo.getO_TAB().get("item"); + for (HashMap map : itemList) { + BaseMaterialInfoBo materialInfo = new BaseMaterialInfoBo(); + materialInfo.setMaterialCode(map.get("MATNR")); + materialInfo.setMaterialName(map.get("MAKTX")); + materialInfo.setMaterialUnit(map.get("MEINS")); + materialInfo.setMaterialMatkl(map.get("MATKL")); + materialInfoArrayList.add(materialInfo); + } + return materialInfoArrayList; + } + + + + + +} diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/snailjob/MaterialInfoJobExecutor.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/snailjob/MaterialInfoJobExecutor.java new file mode 100644 index 0000000..b82c877 --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/snailjob/MaterialInfoJobExecutor.java @@ -0,0 +1,30 @@ +package org.dromara.api.snailjob; + +import com.aizuda.snailjob.client.job.core.annotation.JobExecutor; +import com.aizuda.snailjob.client.job.core.dto.JobArgs; +import com.aizuda.snailjob.client.model.ExecuteResult; +import com.aizuda.snailjob.common.core.util.JsonUtil; +import com.aizuda.snailjob.common.log.SnailJobLog; +import org.dromara.api.service.IBaseMaterialInfoApiService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @author opensnail + * @date 2024-05-17 + */ +@Component +@JobExecutor(name = "materialInfoJobExecutor") +public class MaterialInfoJobExecutor { + + @Autowired + IBaseMaterialInfoApiService baseMaterialInfoApiService; + + public ExecuteResult jobExecute(JobArgs jobArgs) { + String jobParams = String.valueOf(jobArgs.getJobParams()); + String result = baseMaterialInfoApiService.insertApi(jobParams); + SnailJobLog.LOCAL.info("materialInfoJobExecutor.jobArgs:{}", JsonUtil.toJsonString(jobArgs)); + return ExecuteResult.success(result); + } + +} diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/utils/SAPApiUtils.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/utils/SAPApiUtils.java new file mode 100644 index 0000000..b5f8888 --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/utils/SAPApiUtils.java @@ -0,0 +1,43 @@ +package org.dromara.api.utils; + +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; + +import java.util.Base64; + +/** + * @Author YinQ + * @create 2023-10-12 10:52 + */ +public class SAPApiUtils { + + + /** + * POST请求json格式 + * @param apiUrl + * @param jsonData + * @return + */ + public static String sendSAPHttpPost(String apiUrl, String jsonData) { + try { + // 构建POST请求 + HttpRequest request = HttpRequest.post(apiUrl) + .header("Authorization", "Basic " + Base64.getUrlEncoder(). + encodeToString((SAPConstants.USER_NAME + ":" + SAPConstants.PASS_WORD).getBytes())) + .body(jsonData) // 设置JSON格式的请求体 + .contentType("application/json") // 设置Content-Type为application/json + .setConnectionTimeout(1000 * 10) // 设置请求连接超时时间 + ; + + // 发送POST请求 + HttpResponse httpResponse = request.execute(); + + // 获取响应内容 + return httpResponse.body(); + } catch (Exception e) { + // 捕获异常并重新抛出自定义异常 + throw new RuntimeException("Failed to send SAP HTTP POST request: " + e.getMessage(), e); + } + + } +} diff --git a/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/utils/SAPConstants.java b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/utils/SAPConstants.java new file mode 100644 index 0000000..8dd0c71 --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/java/org/dromara/api/utils/SAPConstants.java @@ -0,0 +1,70 @@ +package org.dromara.api.utils; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +/** + * @Author YinQ + * @create 2023-09-26 15:39 + */ +@Component +public class SAPConstants { + + + /** + * SAP-URL前缀 + */ + public static String SAP_PREFIX_URL; + + /** + * SAP-用户名 + */ + public static String USER_NAME; + + /** + * SAP-密码 + */ + public static String PASS_WORD; + + /** + * 获取物料主数据(MES2019) + */ + public static final String MATERIAL_URL = "/SdGetSB/SdSapGetMaterialToMesSvcRSProxy/merge"; + + /** + * 获取生产工单(MES2019) + */ + public static final String PRODUCTION_ORDERS_URL = "/SdGetSB/SdSapGetPOToMesSvcRSProxy/merge"; + + /** + * 获取设备模具信息(MES2019) + */ + public static final String EQUIPMENT_URL = "/SdGetSB/SdSapGetEQToMesSvcRSProxy/merge"; + + /** + * 获取产品BOM信息(MES2019) + */ + public static final String PRODUCTS_BOM_URL = "/SdGetSB/SdSapGetBomToMesSvcRSProxy/merge"; + + /** + * 工厂编号 + */ + public static final String FACTORY_CODE = "1301"; + + +// @Value("${sap.prefix}") + public void setPrefix(String value) { + SAP_PREFIX_URL = value; + } + +// @Value("${sap.username}") + public void setUserName(String value) { + USER_NAME = value; + } + +// @Value("${sap.password}") + public void setPassWord(String value) { + PASS_WORD = value; + } + +} diff --git a/ruoyi-modules/hwmom-api/src/main/resources/application.yml b/ruoyi-modules/hwmom-api/src/main/resources/application.yml new file mode 100644 index 0000000..9538287 --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/resources/application.yml @@ -0,0 +1,34 @@ +# Tomcat +server: + port: 6016 + +# Spring +spring: + application: + # 应用名称 + name: hwmom-api + profiles: + # 环境配置 + active: @profiles.active@ + +--- # nacos 配置 +spring: + cloud: + nacos: + # nacos 服务地址 + server-addr: @nacos.server@ + username: @nacos.username@ + password: @nacos.password@ + discovery: + # 注册组 + group: @nacos.discovery.group@ + namespace: ${spring.profiles.active} + config: + # 配置组 + group: @nacos.config.group@ + namespace: ${spring.profiles.active} + config: + import: + - optional:nacos:application-common.yml + - optional:nacos:datasource.yml + - optional:nacos:${spring.application.name}.yml diff --git a/ruoyi-modules/hwmom-api/src/main/resources/banner.txt b/ruoyi-modules/hwmom-api/src/main/resources/banner.txt new file mode 100644 index 0000000..f13665e --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/resources/banner.txt @@ -0,0 +1,8 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} + __ _ + / /_ _ ______ ___ ____ ____ ___ ____ _____ (_) + / __ \ | /| / / __ `__ \/ __ \/ __ `__ \______/ __ `/ __ \/ / + / / / / |/ |/ / / / / / / /_/ / / / / / /_____/ /_/ / /_/ / / +/_/ /_/|__/|__/_/ /_/ /_/\____/_/ /_/ /_/ \__,_/ .___/_/ + /_/ diff --git a/ruoyi-modules/hwmom-api/src/main/resources/logback-plus.xml b/ruoyi-modules/hwmom-api/src/main/resources/logback-plus.xml new file mode 100644 index 0000000..caaa345 --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/resources/logback-plus.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + ${console.log.pattern} + utf-8 + + + + + + + + + + + + + + + diff --git a/ruoyi-modules/hwmom-api/src/main/resources/mapper/package-info.md b/ruoyi-modules/hwmom-api/src/main/resources/mapper/package-info.md new file mode 100644 index 0000000..c938b1e --- /dev/null +++ b/ruoyi-modules/hwmom-api/src/main/resources/mapper/package-info.md @@ -0,0 +1,3 @@ +java包使用 `.` 分割 resource 目录使用 `/` 分割 +
+此文件目的 防止文件夹粘连找不到 `xml` 文件 \ No newline at end of file diff --git a/ruoyi-modules/hwmom-mes/pom.xml b/ruoyi-modules/hwmom-mes/pom.xml index 83005fc..a5531c6 100644 --- a/ruoyi-modules/hwmom-mes/pom.xml +++ b/ruoyi-modules/hwmom-mes/pom.xml @@ -115,6 +115,19 @@ com.microsoft.sqlserver mssql-jdbc + + org.dromara + hwmom-common-mom + 2.2.2 + compile + + + + org.dromara + hwmom-api-mes + 2.2.2 + compile + diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseClassTeamInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseClassTeamInfoController.java index 0be4424..9d57965 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseClassTeamInfoController.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseClassTeamInfoController.java @@ -114,4 +114,14 @@ public class BaseClassTeamInfoController extends BaseController { public R>selectClassTeamList(BaseClassTeamInfoBo bo, PageQuery pageQuery) { return R.ok(baseClassTeamInfoService.queryList(bo)); } + + /** + * 下拉框查询班组信息列表 + */ + @GetMapping("getBaseClassTeamInfoList") + public R> getBaseClassTeamInfolist(BaseClassTeamInfoBo bo) { + List list = baseClassTeamInfoService.queryList(bo); + return R.ok(list); + } + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseMaterialInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseMaterialInfoController.java index e738804..9c55bac 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseMaterialInfoController.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseMaterialInfoController.java @@ -110,7 +110,7 @@ public class BaseMaterialInfoController extends BaseController { */ @GetMapping("getBaseMaterialInfoList") - public R> getBaseMaterialInfolist(BaseMaterialInfoBo bo) { + public R> getBaseMaterialInfoList(BaseMaterialInfoBo bo) { List list = baseMaterialInfoService.queryList(bo); return R.ok(list); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseStructureBomController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseStructureBomController.java new file mode 100644 index 0000000..b6599b7 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/BaseStructureBomController.java @@ -0,0 +1,117 @@ +package org.dromara.mes.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mes.domain.vo.BaseStructureBomVo; +import org.dromara.mes.domain.bo.BaseStructureBomBo; +import org.dromara.mes.service.IBaseStructureBomService; + +/** + * 结构BOM信息 + * 前端访问路由地址为:/mes/baseStructureBom + * + * @author zangch + * @date 2025-01-20 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/baseStructureBom") +public class BaseStructureBomController extends BaseController { + + private final IBaseStructureBomService baseStructureBomService; + + /** + * 查询结构BOM信息列表 + */ + @SaCheckPermission("mes:baseStructureBom:list") + @GetMapping("/list") + public R> list(BaseStructureBomBo bo) { + List list = baseStructureBomService.queryList(bo); + return R.ok(list); + } + + /** + * 导出结构BOM信息列表 + */ + @SaCheckPermission("mes:baseStructureBom:export") + @Log(title = "结构BOM信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(BaseStructureBomBo bo, HttpServletResponse response) { + List list = baseStructureBomService.queryList(bo); + ExcelUtil.exportExcel(list, "结构BOM信息", BaseStructureBomVo.class, response); + } + + /** + * 获取结构BOM信息详细信息 + * + * @param structureBomId 主键 + */ + @SaCheckPermission("mes:baseStructureBom:query") + @GetMapping("/{structureBomId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long structureBomId) { + return R.ok(baseStructureBomService.queryById(structureBomId)); + } + + /** + * 新增结构BOM信息 + */ + @SaCheckPermission("mes:baseStructureBom:add") + @Log(title = "结构BOM信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody BaseStructureBomBo bo) { + return toAjax(baseStructureBomService.insertByBo(bo)); + } + + /** + * 修改结构BOM信息 + */ + @SaCheckPermission("mes:baseStructureBom:edit") + @Log(title = "结构BOM信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody BaseStructureBomBo bo) { + return toAjax(baseStructureBomService.updateByBo(bo)); + } + + /** + * 删除结构BOM信息 + * + * @param structureBomIds 主键串 + */ + @SaCheckPermission("mes:baseStructureBom:remove") + @Log(title = "结构BOM信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{structureBomIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] structureBomIds) { + return toAjax(baseStructureBomService.deleteWithValidByIds(List.of(structureBomIds), true)); + } + + + /** + * 下拉框查询结构BOM信息列表 + */ + + @GetMapping("getBaseStructureBomList") + public R> getBaseStructureBomlist(BaseStructureBomBo bo) { + List list = baseStructureBomService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseMachineInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseMachineInfoController.java new file mode 100644 index 0000000..399bc65 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseMachineInfoController.java @@ -0,0 +1,117 @@ +package org.dromara.mes.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mes.domain.vo.ProdBaseMachineInfoVo; +import org.dromara.mes.domain.bo.ProdBaseMachineInfoBo; +import org.dromara.mes.service.IProdBaseMachineInfoService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 机台信息 + * 前端访问路由地址为:/mes/prodBaseMachineInfo + * + * @author zangch + * @date 2025-01-20 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/prodBaseMachineInfo") +public class ProdBaseMachineInfoController extends BaseController { + + private final IProdBaseMachineInfoService prodBaseMachineInfoService; + + /** + * 查询机台信息列表 + */ + @SaCheckPermission("mes:prodBaseMachineInfo:list") + @GetMapping("/list") + public TableDataInfo list(ProdBaseMachineInfoBo bo, PageQuery pageQuery) { + return prodBaseMachineInfoService.queryPageList(bo, pageQuery); + } + + /** + * 导出机台信息列表 + */ + @SaCheckPermission("mes:prodBaseMachineInfo:export") + @Log(title = "机台信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ProdBaseMachineInfoBo bo, HttpServletResponse response) { + List list = prodBaseMachineInfoService.queryList(bo); + ExcelUtil.exportExcel(list, "机台信息", ProdBaseMachineInfoVo.class, response); + } + + /** + * 获取机台信息详细信息 + * + * @param machineId 主键 + */ + @SaCheckPermission("mes:prodBaseMachineInfo:query") + @GetMapping("/{machineId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long machineId) { + return R.ok(prodBaseMachineInfoService.queryById(machineId)); + } + + /** + * 新增机台信息 + */ + @SaCheckPermission("mes:prodBaseMachineInfo:add") + @Log(title = "机台信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ProdBaseMachineInfoBo bo) { + return toAjax(prodBaseMachineInfoService.insertByBo(bo)); + } + + /** + * 修改机台信息 + */ + @SaCheckPermission("mes:prodBaseMachineInfo:edit") + @Log(title = "机台信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ProdBaseMachineInfoBo bo) { + return toAjax(prodBaseMachineInfoService.updateByBo(bo)); + } + + /** + * 删除机台信息 + * + * @param machineIds 主键串 + */ + @SaCheckPermission("mes:prodBaseMachineInfo:remove") + @Log(title = "机台信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{machineIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] machineIds) { + return toAjax(prodBaseMachineInfoService.deleteWithValidByIds(List.of(machineIds), true)); + } + + + /** + * 下拉框查询机台信息列表 + */ + + @GetMapping("getProdBaseMachineInfoList") + public R> getProdBaseMachineInfolist(ProdBaseMachineInfoBo bo) { + List list = prodBaseMachineInfoService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessInfoController.java index 47dbd87..18be5f6 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessInfoController.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessInfoController.java @@ -95,11 +95,22 @@ public class ProdBaseProcessInfoController extends BaseController { @SaCheckPermission("mes:baseProcessInfo:edit") @Log(title = "工序信息", businessType = BusinessType.UPDATE) @RepeatSubmit() - @PutMapping() + @PutMapping("/edit") public R edit(@Validated(EditGroup.class) @RequestBody ProdBaseProcessInfoBo bo) { return toAjax(prodBaseProcessInfoService.updateByBo(bo)); } + /** + * 修改工序信息 + */ + @SaCheckPermission("mes:baseProcessInfo:edit") + @Log(title = "工序信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping("/editUser") + public R editUser(@Validated(EditGroup.class) @RequestBody ProdBaseProcessInfoBo bo) { + return toAjax(prodBaseProcessInfoService.updateByBoUser(bo)); + } + /** * 删除工序信息 * diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessProdLineController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessProdLineController.java new file mode 100644 index 0000000..2db606d --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessProdLineController.java @@ -0,0 +1,117 @@ +package org.dromara.mes.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mes.domain.vo.ProdBaseProcessProdLineVo; +import org.dromara.mes.domain.bo.ProdBaseProcessProdLineBo; +import org.dromara.mes.service.IProdBaseProcessProdLineService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 工序关联产线 + * 前端访问路由地址为:/mes/prodBaseProcessProdLine + * + * @author LionLi + * @date 2025-01-09 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/prodBaseProcessProdLine") +public class ProdBaseProcessProdLineController extends BaseController { + + private final IProdBaseProcessProdLineService prodBaseProcessProdLineService; + + /** + * 查询工序关联产线列表 + */ + @SaCheckPermission("mes:prodBaseProcessProdLine:list") + @GetMapping("/list") + public TableDataInfo list(ProdBaseProcessProdLineBo bo, PageQuery pageQuery) { + return prodBaseProcessProdLineService.queryPageList(bo, pageQuery); + } + + /** + * 导出工序关联产线列表 + */ + @SaCheckPermission("mes:prodBaseProcessProdLine:export") + @Log(title = "工序关联产线", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ProdBaseProcessProdLineBo bo, HttpServletResponse response) { + List list = prodBaseProcessProdLineService.queryList(bo); + ExcelUtil.exportExcel(list, "工序关联产线", ProdBaseProcessProdLineVo.class, response); + } + + /** + * 获取工序关联产线详细信息 + * + * @param processId 主键 + */ + @SaCheckPermission("mes:prodBaseProcessProdLine:query") + @GetMapping("/{processId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long processId) { + return R.ok(prodBaseProcessProdLineService.queryById(processId)); + } + + /** + * 新增工序关联产线 + */ + @SaCheckPermission("mes:prodBaseProcessProdLine:add") + @Log(title = "工序关联产线", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ProdBaseProcessProdLineBo bo) { + return toAjax(prodBaseProcessProdLineService.insertByBo(bo)); + } + + /** + * 修改工序关联产线 + */ + @SaCheckPermission("mes:prodBaseProcessProdLine:edit") + @Log(title = "工序关联产线", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ProdBaseProcessProdLineBo bo) { + return toAjax(prodBaseProcessProdLineService.updateByBo(bo)); + } + + /** + * 删除工序关联产线 + * + * @param processIds 主键串 + */ + @SaCheckPermission("mes:prodBaseProcessProdLine:remove") + @Log(title = "工序关联产线", businessType = BusinessType.DELETE) + @DeleteMapping("/{processIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] processIds) { + return toAjax(prodBaseProcessProdLineService.deleteWithValidByIds(List.of(processIds), true)); + } + + + /** + * 下拉框查询工序关联产线列表 + */ + + @GetMapping("getProdBaseProcessProdLineList") + public R> getProdBaseProcessProdLinelist(ProdBaseProcessProdLineBo bo) { + List list = prodBaseProcessProdLineService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessUserController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessUserController.java new file mode 100644 index 0000000..2c4e3ae --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdBaseProcessUserController.java @@ -0,0 +1,117 @@ +package org.dromara.mes.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mes.domain.vo.ProdBaseProcessUserVo; +import org.dromara.mes.domain.bo.ProdBaseProcessUserBo; +import org.dromara.mes.service.IProdBaseProcessUserService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 工序关联人员 + * 前端访问路由地址为:/mes/prodBaseProcessUser + * + * @author zangch + * @date 2025-01-09 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/prodBaseProcessUser") +public class ProdBaseProcessUserController extends BaseController { + + private final IProdBaseProcessUserService prodBaseProcessUserService; + + /** + * 查询工序关联人员列表 + */ + @SaCheckPermission("mes:prodBaseProcessUser:list") + @GetMapping("/list") + public TableDataInfo list(ProdBaseProcessUserBo bo, PageQuery pageQuery) { + return prodBaseProcessUserService.queryPageList(bo, pageQuery); + } + + /** + * 导出工序关联人员列表 + */ + @SaCheckPermission("mes:prodBaseProcessUser:export") + @Log(title = "工序关联人员", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ProdBaseProcessUserBo bo, HttpServletResponse response) { + List list = prodBaseProcessUserService.queryList(bo); + ExcelUtil.exportExcel(list, "工序关联人员", ProdBaseProcessUserVo.class, response); + } + + /** + * 获取工序关联人员详细信息 + * + * @param processId 主键 + */ + @SaCheckPermission("mes:prodBaseProcessUser:query") + @GetMapping("/{processId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long processId) { + return R.ok(prodBaseProcessUserService.queryById(processId)); + } + + /** + * 新增工序关联人员 + */ + @SaCheckPermission("mes:prodBaseProcessUser:add") + @Log(title = "工序关联人员", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ProdBaseProcessUserBo bo) { + return toAjax(prodBaseProcessUserService.insertByBo(bo)); + } + + /** + * 修改工序关联人员 + */ + @SaCheckPermission("mes:prodBaseProcessUser:edit") + @Log(title = "工序关联人员", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ProdBaseProcessUserBo bo) { + return toAjax(prodBaseProcessUserService.updateByBo(bo)); + } + + /** + * 删除工序关联人员 + * + * @param processIds 主键串 + */ + @SaCheckPermission("mes:prodBaseProcessUser:remove") + @Log(title = "工序关联人员", businessType = BusinessType.DELETE) + @DeleteMapping("/{processIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] processIds) { + return toAjax(prodBaseProcessUserService.deleteWithValidByIds(List.of(processIds), true)); + } + + + /** + * 下拉框查询工序关联人员列表 + */ + + @GetMapping("getProdBaseProcessUserList") + public R> getProdBaseProcessUserlist(ProdBaseProcessUserBo bo) { + List list = prodBaseProcessUserService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdMaterialBomController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdMaterialBomController.java index 5bed053..e3776c1 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdMaterialBomController.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdMaterialBomController.java @@ -107,9 +107,21 @@ public class ProdMaterialBomController extends BaseController { /** * 下拉框查询物料BOM信息列表 */ - @GetMapping("getProdMaterialBomList") + @GetMapping("/getProdMaterialBomList") public R> getProdMaterialBomlist(ProdMaterialBomBo bo) { List list = prodMaterialBomService.queryList(bo); return R.ok(list); } + + /** + * 根据结构BOM批量插入物料清单BOM。 + */ + @SaCheckPermission("mes:materialBom:add") + @Log(title = "物料BOM信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/addBatchMaterialBom") + public R addBatchMaterialBom(@RequestBody List boList) { + //不是单纯的批量新增,是新增BOM对话框(参考结构BOM批量新增物料BOM) + return toAjax(prodMaterialBomService.insertBatchByBoList(boList)); + } } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java index c497a85..9f2440f 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdPlanInfoController.java @@ -6,6 +6,9 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.mes.domain.ProdBaseRouteProcess; +import org.dromara.mes.domain.vo.MesProductPlanEditVo; +import org.dromara.mes.service.IProdBaseRouteProcessService; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -37,6 +40,8 @@ public class ProdPlanInfoController extends BaseController { private final IProdPlanInfoService prodPlanInfoService; + private final IProdBaseRouteProcessService prodBaseRouteProcessService; + /** * 查询生产工单信息列表 */ @@ -114,4 +119,47 @@ public class ProdPlanInfoController extends BaseController { List list = prodPlanInfoService.queryList(bo); return R.ok(list); } + + /** + * 获取派工编号 + * + * @return orderCode + */ + @GetMapping(value = "/getDispatchCode") + public R getDispatchCode() { + return R.ok(prodPlanInfoService.getDispatchCode()); + } + + /** + * 获取工序及关联生产人员信息 + * + * @param prodBaseRouteProcess + * @return + */ + @GetMapping(value = "/getBaseRouteProcesses") + public R> getBaseRouteProcesses(ProdBaseRouteProcess prodBaseRouteProcess) { + return R.ok(prodBaseRouteProcessService.selectProdBaseRouteProcessJoinList(prodBaseRouteProcess)); + } + + /** + * 查询生产派工List + * + * @param bo + * @return + */ + @GetMapping("/selectProductPlans") + public R> selectProductPlans(ProdPlanInfoBo bo) { + List list = prodPlanInfoService.selectProdPlanInfoJoinProcessList(bo); + return R.ok(list); + } + + /** + * 生产工单新增生产派工List + */ + @PostMapping("/orderAddProductPlanList") + @RepeatSubmit(message = "正在提交,请稍后") + public R orderAddProductPlanList(@RequestBody MesProductPlanEditVo productPlanEditVo) { + return toAjax(prodPlanInfoService.orderAddMesProductPlanList(productPlanEditVo)); + } + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdTechnologyInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdTechnologyInfoController.java new file mode 100644 index 0000000..af69b5e --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdTechnologyInfoController.java @@ -0,0 +1,117 @@ +package org.dromara.mes.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mes.domain.vo.ProdTechnologyInfoVo; +import org.dromara.mes.domain.bo.ProdTechnologyInfoBo; +import org.dromara.mes.service.IProdTechnologyInfoService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 工序工艺信息 + * 前端访问路由地址为:/mes/technologyInfo + * + * @author Yinq + * @date 2025-01-21 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/technologyInfo") +public class ProdTechnologyInfoController extends BaseController { + + private final IProdTechnologyInfoService prodTechnologyInfoService; + + /** + * 查询工序工艺信息列表 + */ + @SaCheckPermission("mes:technologyInfo:list") + @GetMapping("/list") + public TableDataInfo list(ProdTechnologyInfoBo bo, PageQuery pageQuery) { + return prodTechnologyInfoService.queryPageList(bo, pageQuery); + } + + /** + * 导出工序工艺信息列表 + */ + @SaCheckPermission("mes:technologyInfo:export") + @Log(title = "工序工艺信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ProdTechnologyInfoBo bo, HttpServletResponse response) { + List list = prodTechnologyInfoService.queryList(bo); + ExcelUtil.exportExcel(list, "工序工艺信息", ProdTechnologyInfoVo.class, response); + } + + /** + * 获取工序工艺信息详细信息 + * + * @param technologyId 主键 + */ + @SaCheckPermission("mes:technologyInfo:query") + @GetMapping("/{technologyId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long technologyId) { + return R.ok(prodTechnologyInfoService.queryById(technologyId)); + } + + /** + * 新增工序工艺信息 + */ + @SaCheckPermission("mes:technologyInfo:add") + @Log(title = "工序工艺信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ProdTechnologyInfoBo bo) { + return toAjax(prodTechnologyInfoService.insertByBo(bo)); + } + + /** + * 修改工序工艺信息 + */ + @SaCheckPermission("mes:technologyInfo:edit") + @Log(title = "工序工艺信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ProdTechnologyInfoBo bo) { + return toAjax(prodTechnologyInfoService.updateByBo(bo)); + } + + /** + * 删除工序工艺信息 + * + * @param technologyIds 主键串 + */ + @SaCheckPermission("mes:technologyInfo:remove") + @Log(title = "工序工艺信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{technologyIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] technologyIds) { + return toAjax(prodTechnologyInfoService.deleteWithValidByIds(List.of(technologyIds), true)); + } + + + /** + * 下拉框查询工序工艺信息列表 + */ + + @GetMapping("getProdTechnologyInfoList") + public R> getProdTechnologyInfolist(ProdTechnologyInfoBo bo) { + List list = prodTechnologyInfoService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdTechnologyStepInfoController.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdTechnologyStepInfoController.java new file mode 100644 index 0000000..256469e --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/controller/ProdTechnologyStepInfoController.java @@ -0,0 +1,117 @@ +package org.dromara.mes.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.mes.domain.vo.ProdTechnologyStepInfoVo; +import org.dromara.mes.domain.bo.ProdTechnologyStepInfoBo; +import org.dromara.mes.service.IProdTechnologyStepInfoService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 工艺步序信息 + * 前端访问路由地址为:/mes/technologyStepInfo + * + * @author Yinq + * @date 2025-01-21 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/technologyStepInfo") +public class ProdTechnologyStepInfoController extends BaseController { + + private final IProdTechnologyStepInfoService prodTechnologyStepInfoService; + + /** + * 查询工艺步序信息列表 + */ + @SaCheckPermission("mes:technologyStepInfo:list") + @GetMapping("/list") + public TableDataInfo list(ProdTechnologyStepInfoBo bo, PageQuery pageQuery) { + return prodTechnologyStepInfoService.queryPageList(bo, pageQuery); + } + + /** + * 导出工艺步序信息列表 + */ + @SaCheckPermission("mes:technologyStepInfo:export") + @Log(title = "工艺步序信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(ProdTechnologyStepInfoBo bo, HttpServletResponse response) { + List list = prodTechnologyStepInfoService.queryList(bo); + ExcelUtil.exportExcel(list, "工艺步序信息", ProdTechnologyStepInfoVo.class, response); + } + + /** + * 获取工艺步序信息详细信息 + * + * @param stepId 主键 + */ + @SaCheckPermission("mes:technologyStepInfo:query") + @GetMapping("/{stepId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long stepId) { + return R.ok(prodTechnologyStepInfoService.queryById(stepId)); + } + + /** + * 新增工艺步序信息 + */ + @SaCheckPermission("mes:technologyStepInfo:add") + @Log(title = "工艺步序信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody ProdTechnologyStepInfoBo bo) { + return toAjax(prodTechnologyStepInfoService.insertByBo(bo)); + } + + /** + * 修改工艺步序信息 + */ + @SaCheckPermission("mes:technologyStepInfo:edit") + @Log(title = "工艺步序信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody ProdTechnologyStepInfoBo bo) { + return toAjax(prodTechnologyStepInfoService.updateByBo(bo)); + } + + /** + * 删除工艺步序信息 + * + * @param stepIds 主键串 + */ + @SaCheckPermission("mes:technologyStepInfo:remove") + @Log(title = "工艺步序信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{stepIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] stepIds) { + return toAjax(prodTechnologyStepInfoService.deleteWithValidByIds(List.of(stepIds), true)); + } + + + /** + * 下拉框查询工艺步序信息列表 + */ + + @GetMapping("getProdTechnologyStepInfoList") + public R> getProdTechnologyStepInfolist(ProdTechnologyStepInfoBo bo) { + List list = prodTechnologyStepInfoService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseClassTeamInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseClassTeamInfo.java index 90d9920..f6f17cf 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseClassTeamInfo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseClassTeamInfo.java @@ -72,18 +72,24 @@ public class BaseClassTeamInfo extends TenantEntity { * BaseShiftInfo的班次名称 */ @TableField(exist = false) - private String shiftName; + private String shiftName;//映射字段 /** * ProdBaseStationInfo工位名称 */ @TableField(exist = false) - private String stationName; + private String stationName;//映射字段 /** * ProdBaseProcessInfo工序名称 */ @TableField(exist = false) - private String processName; + private String processName;//映射字段 + + /** + * 班组负责人 + */ + @TableField(exist = false) + private String teamHeadName;//映射字段 } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseMaterialInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseMaterialInfo.java index 2984590..4cbf300 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseMaterialInfo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseMaterialInfo.java @@ -270,4 +270,11 @@ public class BaseMaterialInfo extends TenantEntity { */ @TableField(exist = false) private String factoryName; //映射字段 + + /** + * 物料类型名称 + */ + @TableField(exist = false) + private String matrialTypeName;//映射字段 + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseStructureBom.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseStructureBom.java new file mode 100644 index 0000000..bd1aef1 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/BaseStructureBom.java @@ -0,0 +1,81 @@ +package org.dromara.mes.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 结构BOM信息对象 base_structure_bom + * + * @author zangch + * @date 2025-01-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("base_structure_bom") +public class BaseStructureBom extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @TableId(value = "structure_bom_id", type = IdType.AUTO) + private Long structureBomId; + + /** + * 父级标识 + */ + private Long parentId; + + /** + * 物料类型ID + */ + private String materialTypeId; + + /** + * 物料类型名称 + */ + private String materialTypeName; + + /** + * 结构BOM说明 + */ + private String structureBomDesc; + + /** + * 结构BOM版本 + */ + private String structureBomVersion; + + /** + * 祖级列表 + */ + private String ancestors; + + /** + * 层级 + */ + private Long level; + + /** + * 顶级标识(1是 0否) + */ + private Long topFlag; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseMachineInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseMachineInfo.java new file mode 100644 index 0000000..cb21851 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseMachineInfo.java @@ -0,0 +1,76 @@ +package org.dromara.mes.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 机台信息对象 prod_base_machine_info + * + * @author zangch + * @date 2025-01-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("prod_base_machine_info") +public class ProdBaseMachineInfo extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @TableId(value = "machine_id", type = IdType.AUTO) + private Long machineId; + + /** + * 机台编号 + */ + private String machineCode; + + /** + * 机台名称 + */ + private String machineName; + + /** + * 资产编号 + */ + private String assetNumber; + + /** + * 机台位置 + */ + private String machineLocation; + + /** + * 机台类型 + */ + private String machineType; + + /** + * 机台规格 + */ + private String machineSpec; + + /** + * 供应商 + */ + private String supplierId; + + /** + * 机台状态(0停用 1启用 2报废) + */ + private String machineStatus; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessInfo.java index 01c9eca..9b9c10c 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessInfo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessInfo.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serial; +import java.util.List; /** * 工序信息对象 prod_base_process_info @@ -62,5 +63,18 @@ public class ProdBaseProcessInfo extends TenantEntity { */ private String remark; + /** + * 工序关联产线信息 + */ + @TableField(exist = false) + private List prodBaseProcessProdlineList;//工序关联产线信息,映射字段 + + /** 工序关联人员信息 */ + @TableField(exist = false) + private List prodBaseProcessUserList;//工序关联人员信息,映射字段 + + @TableField(exist = false) + private String processPercentage;//映射字段 + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessProdLine.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessProdLine.java new file mode 100644 index 0000000..1a6a60b --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessProdLine.java @@ -0,0 +1,69 @@ +package org.dromara.mes.domain; + +import com.fasterxml.jackson.annotation.JsonInclude; +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 工序关联产线对象 prod_base_process_prod_line + * + * @author LionLi + * @date 2025-01-09 + */ +@Data +@EqualsAndHashCode() +@TableName("prod_base_process_prod_line") +public class ProdBaseProcessProdLine { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 工序ID + */ + private Long processId; + + /** + * 所属产线ID + */ + private Long prodLineId; + + + + /*删除继承BaseEntity*/ + /** + * 请求参数 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + @TableField(exist = false) + private Map params = new HashMap<>(); + /** + * 创建部门 + */ + @TableField(fill = FieldFill.INSERT) + private Long createDept; + + /** + * 创建者 + */ + @TableField(fill = FieldFill.INSERT) + private Long createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 租户编号 + */ + private String tenantId; +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessUser.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessUser.java new file mode 100644 index 0000000..4576ea1 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseProcessUser.java @@ -0,0 +1,73 @@ +package org.dromara.mes.domain; + +import com.fasterxml.jackson.annotation.JsonInclude; +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 工序关联人员对象 prod_base_process_user + * + * @author zangch + * @date 2025-01-09 + */ +@Data +@EqualsAndHashCode() +@TableName("prod_base_process_user") +public class ProdBaseProcessUser { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 工序ID + */ + private Long processId; + + /** + * 用户ID + */ + private Long userId; + + /** + * 用户名称 + */ + private String userName; + + + /*删除继承BaseEntity*/ + /** + * 请求参数 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + @TableField(exist = false) + private Map params = new HashMap<>(); + /** + * 创建部门 + */ + @TableField(fill = FieldFill.INSERT) + private Long createDept; + + /** + * 创建者 + */ + @TableField(fill = FieldFill.INSERT) + private Long createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 租户编号 + */ + private String tenantId; +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseRouteProcess.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseRouteProcess.java index 7438391..4030499 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseRouteProcess.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseRouteProcess.java @@ -48,4 +48,18 @@ public class ProdBaseRouteProcess extends BaseEntity { private String remark; + + /** + * 工序名称 + */ + @TableField(exist = false) + private String processName;//映射字段 + + /** + * 工序类别(1生产工序 2质检工序) + */ + @TableField(exist = false) + private String processType;//映射字段 + + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseStationInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseStationInfo.java index 92756a3..5d2aba6 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseStationInfo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdBaseStationInfo.java @@ -72,8 +72,14 @@ public class ProdBaseStationInfo extends TenantEntity { */ private String remark; + /** + * 机台ID + */ + private Long machineId; + @TableField(exist = false) private String processName;//字段映射 - + @TableField(exist = false) + private String machineName;//字段映射 } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdOrderInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdOrderInfo.java index 46e604e..76d9c70 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdOrderInfo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdOrderInfo.java @@ -165,4 +165,27 @@ public class ProdOrderInfo extends TenantEntity { private String remark; + /** + * 物料编码 + */ + @TableField(exist = false) + private String materialCode;//映射字段 + + /** + * 物料名称 + */ + @TableField(exist = false) + private String materialName;//映射字段 + + /** + * + */ + @TableField(exist = false) + private String dispatchName;//映射字段 + + /** + * 工艺路线名称 + */ + @TableField(exist = false) + private String routeName;//映射字段 } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdPlanInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdPlanInfo.java index 9a8cf21..b2fe4eb 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdPlanInfo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdPlanInfo.java @@ -179,5 +179,26 @@ public class ProdPlanInfo extends TenantEntity { */ private String remark; + /** + * 工序类别(1生产工序 2质检工序) + */ + @TableField(exist = false) + private String processType;//映射字段 + + /** + * 工序名称 + */ + @TableField(exist = false) + private String processName;//映射字段 + + /** + * 单位生产时间(秒) + */ + @TableField(exist = false) + private Long processProductionTime;//映射字段 + + + @TableField(exist = false) + private String releaseName;//映射字段 } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdTechnologyInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdTechnologyInfo.java new file mode 100644 index 0000000..7f05d3d --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdTechnologyInfo.java @@ -0,0 +1,75 @@ +package org.dromara.mes.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 工序工艺信息对象 prod_technology_info + * + * @author Yinq + * @date 2025-01-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("prod_technology_info") +public class ProdTechnologyInfo extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @TableId(value = "technology_id", type = IdType.AUTO) + private Long technologyId; + + /** + * 工序ID + */ + private Long processId; + + /** + * 物料ID + */ + private Long materialId; + + /** + * 机台类型(1类一 2类二) + */ + private String machineType; + + /** + * 工艺类型(1量产 2限产) + */ + private String technologyType; + + /** + * 工艺版本 + */ + private String technologyVersion; + + /** + * 硫化标准时间(秒) + */ + private Long standardTime; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + @TableField(exist = false) + private String processName; + + @TableField(exist = false) + private String materialName; +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdTechnologyStepInfo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdTechnologyStepInfo.java new file mode 100644 index 0000000..7dc5903 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/ProdTechnologyStepInfo.java @@ -0,0 +1,71 @@ +package org.dromara.mes.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 工艺步序信息对象 prod_technology_step_info + * + * @author Yinq + * @date 2025-01-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("prod_technology_step_info") +public class ProdTechnologyStepInfo extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @TableId(value = "step_id", type = IdType.AUTO) + private Long stepId; + + /** + * 工艺ID + */ + private Long technologyId; + + /** + * 步序编号 + */ + private Long stepCode; + + /** + * 步序名称 + */ + private String stepName; + + /** + * 步序时间(秒) + */ + private Long stepTime; + + /** + * 步序参数 + */ + private String stepParameter; + + /** + * 阀门状态 + */ + private String valueState; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/BaseMaterialInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/BaseMaterialInfoBo.java index 2d37d7d..7dbc761 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/BaseMaterialInfoBo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/BaseMaterialInfoBo.java @@ -30,7 +30,7 @@ public class BaseMaterialInfoBo extends BaseEntity { /** * ERP信息 */ - @NotBlank(message = "ERP信息不能为空", groups = { AddGroup.class, EditGroup.class }) +/* @NotBlank(message = "ERP信息不能为空", groups = { AddGroup.class, EditGroup.class })*/ private String erpId; /** diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/BaseStructureBomBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/BaseStructureBomBo.java new file mode 100644 index 0000000..05f6e93 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/BaseStructureBomBo.java @@ -0,0 +1,80 @@ +package org.dromara.mes.domain.bo; + +import org.dromara.mes.domain.BaseStructureBom; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 结构BOM信息业务对象 base_structure_bom + * + * @author zangch + * @date 2025-01-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = BaseStructureBom.class, reverseConvertGenerate = false) +public class BaseStructureBomBo extends BaseEntity { + + /** + * 主键标识 + */ + private Long structureBomId; + + /** + * 父级标识 + */ + private Long parentId; + + /** + * 物料类型ID + */ + @NotBlank(message = "物料类型ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private String materialTypeId; + + /** + * 物料类型名称 + */ + private String materialTypeName; + + /** + * 结构BOM说明 + */ + private String structureBomDesc; + + /** + * 结构BOM版本 + */ + private String structureBomVersion; + + /** + * 祖级列表 + */ + private String ancestors; + + /** + * 层级 + */ + private Long level; + + /** + * 顶级标识(1是 0否) + */ + private Long topFlag; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseMachineInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseMachineInfoBo.java new file mode 100644 index 0000000..73c76b2 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseMachineInfoBo.java @@ -0,0 +1,80 @@ +package org.dromara.mes.domain.bo; + +import org.dromara.mes.domain.ProdBaseMachineInfo; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 机台信息业务对象 prod_base_machine_info + * + * @author zangch + * @date 2025-01-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ProdBaseMachineInfo.class, reverseConvertGenerate = false) +public class ProdBaseMachineInfoBo extends BaseEntity { + + /** + * 主键标识 + */ + private Long machineId; + + /** + * 机台编号 + */ + @NotBlank(message = "机台编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String machineCode; + + /** + * 机台名称 + */ + @NotBlank(message = "机台名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String machineName; + + /** + * 资产编号 + */ + private String assetNumber; + + /** + * 机台位置 + */ + private String machineLocation; + + /** + * 机台类型 + */ + private String machineType; + + /** + * 机台规格 + */ + private String machineSpec; + + /** + * 供应商 + */ + private String supplierId; + + /** + * 机台状态(0停用 1启用 2报废) + */ + private String machineStatus; + + /** + * 备注 + */ + private String remark; + + /** + * 工序 + */ + private Long processId; + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessInfoBo.java index 8e4daea..d9ff840 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessInfoBo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessInfoBo.java @@ -1,5 +1,6 @@ package org.dromara.mes.domain.bo; +import com.baomidou.mybatisplus.annotation.TableField; import org.dromara.mes.domain.ProdBaseProcessInfo; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; @@ -8,6 +9,10 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; +import org.dromara.mes.domain.ProdBaseProcessProdLine; +import org.dromara.mes.domain.ProdBaseProcessUser; + +import java.util.List; /** * 工序信息业务对象 prod_base_process_info @@ -65,4 +70,14 @@ public class ProdBaseProcessInfoBo extends BaseEntity { private String remark; + /** + * 工序关联产线信息 + */ + private List prodBaseProcessProdlineBoList;//工序关联产线信息,映射字段 + + /** 工序关联人员信息 */ + private List prodBaseProcessUserBoList;//工序关联人员信息,映射字段 + + private String processPercentageBo;//映射字段 + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessProdLineBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessProdLineBo.java new file mode 100644 index 0000000..f1e4d15 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessProdLineBo.java @@ -0,0 +1,83 @@ +package org.dromara.mes.domain.bo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import org.dromara.mes.domain.ProdBaseProcessProdLine; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 工序关联产线业务对象 prod_base_process_prod_line + * + * @author LionLi + * @date 2025-01-09 + */ +@Data +@EqualsAndHashCode() +@AutoMapper(target = ProdBaseProcessProdLine.class, reverseConvertGenerate = false) +public class ProdBaseProcessProdLineBo { + + /** + * 工序ID + */ + @NotNull(message = "工序ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long processId; + + /** + * 所属产线ID + */ + @NotNull(message = "所属产线ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long prodLineId; + + + /** + * 搜索值 + */ + @JsonIgnore + @TableField(exist = false) + private String searchValue; + + /** + * 创建部门 + */ + @TableField(fill = FieldFill.INSERT) + private Long createDept; + + /** + * 创建者 + */ + @TableField(fill = FieldFill.INSERT) + private Long createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + + /** + * 请求参数 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + @TableField(exist = false) + private Map params = new HashMap<>(); + + /** + * 租户编号 + */ + @TableField(exist = false) + private String tenantId; + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessUserBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessUserBo.java new file mode 100644 index 0000000..d3a1eb6 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseProcessUserBo.java @@ -0,0 +1,81 @@ +package org.dromara.mes.domain.bo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import org.dromara.mes.domain.ProdBaseProcessUser; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * 工序关联人员业务对象 prod_base_process_user + * + * @author zangch + * @date 2025-01-09 + */ +@Data +@EqualsAndHashCode() +@AutoMapper(target = ProdBaseProcessUser.class, reverseConvertGenerate = false) +public class ProdBaseProcessUserBo { + + /** + * 工序ID + */ + @NotNull(message = "工序ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long processId; + + /** + * 用户ID + */ + @NotNull(message = "用户ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + + /** + * 用户名称 + */ + private String userName; + + /** + * 搜索值 + */ + @JsonIgnore + @TableField(exist = false) + private String searchValue; + + /** + * 创建部门 + */ + @TableField(fill = FieldFill.INSERT) + private Long createDept; + + /** + * 创建者 + */ + @TableField(fill = FieldFill.INSERT) + private Long createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + + /** + * 请求参数 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + @TableField(exist = false) + private Map params = new HashMap<>(); + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseStationInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseStationInfoBo.java index b3a5942..c3c2d40 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseStationInfoBo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdBaseStationInfoBo.java @@ -74,5 +74,5 @@ public class ProdBaseStationInfoBo extends BaseEntity { */ private String remark; - + private Long machineId; } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdOrderInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdOrderInfoBo.java index 1d3e926..28b495e 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdOrderInfoBo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdOrderInfoBo.java @@ -32,7 +32,6 @@ public class ProdOrderInfoBo extends BaseEntity { /** * 订单编号 */ - @NotBlank(message = "订单编号不能为空", groups = {AddGroup.class, EditGroup.class}) private String orderCode; /** diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdPlanInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdPlanInfoBo.java index 5e3c1c7..f8b8631 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdPlanInfoBo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdPlanInfoBo.java @@ -45,7 +45,7 @@ public class ProdPlanInfoBo extends BaseEntity { /** * 工单编号 */ - @NotBlank(message = "工单编号不能为空", groups = { AddGroup.class, EditGroup.class }) +// @NotBlank(message = "工单编号不能为空", groups = { AddGroup.class, EditGroup.class }) private String planCode; /** @@ -56,13 +56,13 @@ public class ProdPlanInfoBo extends BaseEntity { /** * 物料ID;成品ID */ - @NotNull(message = "物料ID;成品ID不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "物料不能为空", groups = { AddGroup.class, EditGroup.class }) private Long materialId; /** * 物料BOM_ID */ - @NotNull(message = "物料BOM_ID不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "物料BOM不能为空", groups = { AddGroup.class, EditGroup.class }) private Long materialBomId; /** @@ -109,7 +109,7 @@ public class ProdPlanInfoBo extends BaseEntity { /** * 派工数量 */ - @NotNull(message = "派工数量不能为空", groups = { AddGroup.class, EditGroup.class }) +// @NotNull(message = "派工数量不能为空", groups = { AddGroup.class, EditGroup.class }) private Long dispatchAmount; /** @@ -182,5 +182,7 @@ public class ProdPlanInfoBo extends BaseEntity { */ private String remark; + private Long workshopId; + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdTechnologyInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdTechnologyInfoBo.java new file mode 100644 index 0000000..b67bfca --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdTechnologyInfoBo.java @@ -0,0 +1,75 @@ +package org.dromara.mes.domain.bo; + +import org.dromara.mes.domain.ProdTechnologyInfo; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.mes.domain.ProdTechnologyStepInfo; + +import java.util.List; + +/** + * 工序工艺信息业务对象 prod_technology_info + * + * @author Yinq + * @date 2025-01-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ProdTechnologyInfo.class, reverseConvertGenerate = false) +public class ProdTechnologyInfoBo extends BaseEntity { + + /** + * 主键标识 + */ + private Long technologyId; + + /** + * 工序ID + */ + @NotNull(message = "工序ID不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long processId; + + /** + * 物料ID + */ + @NotNull(message = "物料ID不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long materialId; + + /** + * 机台类型(1类一 2类二) + */ + private String machineType; + + /** + * 工艺类型(1量产 2限产) + */ + private String technologyType; + + /** + * 工艺版本 + */ + private String technologyVersion; + + /** + * 硫化标准时间(秒) + */ + private Long standardTime; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + private List prodTechnologyStepInfoList; + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdTechnologyStepInfoBo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdTechnologyStepInfoBo.java new file mode 100644 index 0000000..3a23f93 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/bo/ProdTechnologyStepInfoBo.java @@ -0,0 +1,72 @@ +package org.dromara.mes.domain.bo; + +import org.dromara.mes.domain.ProdTechnologyStepInfo; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 工艺步序信息业务对象 prod_technology_step_info + * + * @author Yinq + * @date 2025-01-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = ProdTechnologyStepInfo.class, reverseConvertGenerate = false) +public class ProdTechnologyStepInfoBo extends BaseEntity { + + /** + * 主键标识 + */ + private Long stepId; + + /** + * 工艺ID + */ + @NotNull(message = "工艺ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long technologyId; + + /** + * 步序编号 + */ + @NotNull(message = "步序编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long stepCode; + + /** + * 步序名称 + */ + @NotBlank(message = "步序名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String stepName; + + /** + * 步序时间(秒) + */ + private Long stepTime; + + /** + * 步序参数 + */ + private String stepParameter; + + /** + * 阀门状态 + */ + private String valueState; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseClassTeamInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseClassTeamInfoVo.java index 55e675a..411bd94 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseClassTeamInfoVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseClassTeamInfoVo.java @@ -116,23 +116,29 @@ public class BaseClassTeamInfoVo implements Serializable { * 更新时间 */ @ExcelProperty(value = "更新时间") - private Date updateTime; + private Date updateTime;//映射字段 /** * 班次名称 */ @ExcelProperty(value = "班次名称") - private String shiftName; + private String shiftName;//映射字段 /** * 工位名称 */ @ExcelProperty(value = "工位名称") - private String stationName; + private String stationName;//映射字段 /** * 工序名称 */ @ExcelProperty(value = "工序名称") - private String processName; + private String processName;//映射字段 + + /** + * 班组负责人名称 + */ + @ExcelProperty(value = "班组负责人名称") + private String teamHeadName;//映射字段 } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseMaterialInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseMaterialInfoVo.java index 5a3ea64..788cca2 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseMaterialInfoVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseMaterialInfoVo.java @@ -373,6 +373,12 @@ public class BaseMaterialInfoVo implements Serializable { * 所属工厂 */ @ExcelProperty(value = "所属工厂") - private String factoryName; + private String factoryName;//映射字段 + + /** + * 物料类型名称 + */ + @ExcelProperty(value = "物料类型名称") + private String matrialTypeName;//映射字段 } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseMaterialTypeVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseMaterialTypeVo.java index f9fe420..bcd97d3 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseMaterialTypeVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseMaterialTypeVo.java @@ -131,7 +131,7 @@ public class BaseMaterialTypeVo implements Serializable { * 工序名称 */ @ExcelProperty(value = "工序名称") - private String processName; + private String processName;//工序名称 } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseStructureBomVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseStructureBomVo.java new file mode 100644 index 0000000..1e09b3e --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/BaseStructureBomVo.java @@ -0,0 +1,136 @@ +package org.dromara.mes.domain.vo; + +import org.dromara.mes.domain.BaseStructureBom; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 结构BOM信息视图对象 base_structure_bom + * + * @author zangch + * @date 2025-01-20 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BaseStructureBom.class) +public class BaseStructureBomVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @ExcelProperty(value = "主键标识") + private Long structureBomId; + + /** + * 租户编号 + */ + @ExcelProperty(value = "租户编号") + private String tenantId; + + /** + * 父级标识 + */ + @ExcelProperty(value = "父级标识") + private Long parentId; + + /** + * 物料类型ID + */ + @ExcelProperty(value = "物料类型ID") + private String materialTypeId; + + /** + * 物料类型名称 + */ + @ExcelProperty(value = "物料类型名称") + private String materialTypeName; + + /** + * 结构BOM说明 + */ + @ExcelProperty(value = "结构BOM说明") + private String structureBomDesc; + + /** + * 结构BOM版本 + */ + @ExcelProperty(value = "结构BOM版本") + private String structureBomVersion; + + /** + * 祖级列表 + */ + @ExcelProperty(value = "祖级列表") + private String ancestors; + + /** + * 层级 + */ + @ExcelProperty(value = "层级") + private Long level; + + /** + * 顶级标识(1是 0否) + */ + @ExcelProperty(value = "顶级标识(1是 0否)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "top_flag") + private Long topFlag; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 创建部门 + */ + @ExcelProperty(value = "创建部门") + private Long createDept; + + /** + * 创建人 + */ + @ExcelProperty(value = "创建人") + private Long createBy; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + /** + * 更新人 + */ + @ExcelProperty(value = "更新人") + private Long updateBy; + + /** + * 更新时间 + */ + @ExcelProperty(value = "更新时间") + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/MesProductPlanEditVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/MesProductPlanEditVo.java new file mode 100644 index 0000000..87bb1dc --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/MesProductPlanEditVo.java @@ -0,0 +1,25 @@ +package org.dromara.mes.domain.vo; + +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import org.dromara.mes.domain.ProdPlanInfo; +import org.dromara.mes.domain.bo.ProdPlanInfoBo; + +import java.util.List; + +@Data +public class MesProductPlanEditVo { + //生产工单ID + @NotBlank(message = "生产工单Id必须输入") + private Long productOrderId; + + //此次生产派工数量 + private Long dispatchAmount; + + //保存的生产计划 + @NotBlank(message = "没有修改的生产派工提交") + private List mesProductPlanList; + + //待删除的生产计划ID + private Long[] toDeletedPlanIds; +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseMachineInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseMachineInfoVo.java new file mode 100644 index 0000000..abc767a --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseMachineInfoVo.java @@ -0,0 +1,129 @@ +package org.dromara.mes.domain.vo; + +import org.dromara.mes.domain.ProdBaseMachineInfo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 机台信息视图对象 prod_base_machine_info + * + * @author zangch + * @date 2025-01-20 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ProdBaseMachineInfo.class) +public class ProdBaseMachineInfoVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @ExcelProperty(value = "主键标识") + private Long machineId; + + /** + * 租户编号 + */ + @ExcelProperty(value = "租户编号") + private String tenantId; + + /** + * 机台编号 + */ + @ExcelProperty(value = "机台编号") + private String machineCode; + + /** + * 机台名称 + */ + @ExcelProperty(value = "机台名称") + private String machineName; + + /** + * 资产编号 + */ + @ExcelProperty(value = "资产编号") + private String assetNumber; + + /** + * 机台位置 + */ + @ExcelProperty(value = "机台位置") + private String machineLocation; + + /** + * 机台类型 + */ + @ExcelProperty(value = "机台类型") + private String machineType; + + /** + * 机台规格 + */ + @ExcelProperty(value = "机台规格") + private String machineSpec; + + /** + * 供应商 + */ + @ExcelProperty(value = "供应商") + private String supplierId; + + /** + * 机台状态(0停用 1启用 2报废) + */ + @ExcelProperty(value = "机台状态(0停用 1启用 2报废)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "machine_status") + private String machineStatus; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 创建部门 + */ + @ExcelProperty(value = "创建部门") + private Long createDept; + + /** + * 创建人 + */ + @ExcelProperty(value = "创建人") + private Long createBy; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + /** + * 更新人 + */ + @ExcelProperty(value = "更新人") + private Long updateBy; + + /** + * 更新时间 + */ + @ExcelProperty(value = "更新时间") + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessInfoVo.java index 638cacc..3d0b6db 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessInfoVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessInfoVo.java @@ -1,5 +1,7 @@ package org.dromara.mes.domain.vo; +import com.alibaba.excel.annotation.ExcelIgnore; +import com.baomidou.mybatisplus.annotation.TableField; import org.dromara.mes.domain.ProdBaseProcessInfo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -7,11 +9,13 @@ import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.mes.domain.ProdBaseProcessProdLine; +import org.dromara.mes.domain.ProdBaseProcessUser; import java.io.Serial; import java.io.Serializable; import java.util.Date; - +import java.util.List; /** @@ -115,5 +119,17 @@ public class ProdBaseProcessInfoVo implements Serializable { @ExcelProperty(value = "更新时间") private Date updateTime; + /** + * 工序关联产线信息 + */ + @ExcelIgnore + private List prodBaseProcessProdlineVoList;//工序关联产线信息,映射字段 + + /** 工序关联人员信息 */ + @ExcelIgnore + private List prodBaseProcessUserVoList;//工序关联人员信息,映射字段 + + @ExcelIgnore + private String processPercentageVo;//映射字段 } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessProdLineVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessProdLineVo.java new file mode 100644 index 0000000..ff80acf --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessProdLineVo.java @@ -0,0 +1,62 @@ +package org.dromara.mes.domain.vo; + +import org.dromara.mes.domain.ProdBaseProcessProdLine; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 工序关联产线视图对象 prod_base_process_prod_line + * + * @author LionLi + * @date 2025-01-09 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ProdBaseProcessProdLine.class) +public class ProdBaseProcessProdLineVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 工序ID + */ + @ExcelProperty(value = "工序ID") + private Long processId; + + /** + * 所属产线ID + */ + @ExcelProperty(value = "所属产线ID") + private Long prodLineId; + + /** + * 租户编号 + */ + @ExcelProperty(value = "租户编号") + private String tenantId; + + /** + * 创建人 + */ + @ExcelProperty(value = "创建人") + private String createBy; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessUserVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessUserVo.java new file mode 100644 index 0000000..3e3aca5 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseProcessUserVo.java @@ -0,0 +1,68 @@ +package org.dromara.mes.domain.vo; + +import org.dromara.mes.domain.ProdBaseProcessUser; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 工序关联人员视图对象 prod_base_process_user + * + * @author zangch + * @date 2025-01-09 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ProdBaseProcessUser.class) +public class ProdBaseProcessUserVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 工序ID + */ + @ExcelProperty(value = "工序ID") + private Long processId; + + /** + * 用户ID + */ + @ExcelProperty(value = "用户ID") + private Long userId; + + /** + * 租户编号 + */ + @ExcelProperty(value = "租户编号") + private String tenantId; + + /** + * 用户名称 + */ + @ExcelProperty(value = "用户名称") + private String userName; + + /** + * 创建人 + */ + @ExcelProperty(value = "创建人") + private String createBy; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseRouteProcessVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseRouteProcessVo.java index ef4c4a5..d3a99b2 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseRouteProcessVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseRouteProcessVo.java @@ -59,4 +59,19 @@ public class ProdBaseRouteProcessVo implements Serializable { private String remark; + + + /** + * 工序名称 + */ + @ExcelProperty(value = "工序名称") + private String processName; + + /** + * 工序类别(1生产工序 2质检工序) + */ + @ExcelProperty(value = "工序类别", converter = ExcelDictConvert.class) + private String processType; + + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseRouteVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseRouteVo.java index 3a3378d..b8ed28b 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseRouteVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseRouteVo.java @@ -1,5 +1,6 @@ package org.dromara.mes.domain.vo; +import com.alibaba.excel.annotation.ExcelIgnore; import org.dromara.mes.domain.ProdBaseRoute; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -95,6 +96,10 @@ public class ProdBaseRouteVo implements Serializable { @ExcelProperty(value = "更新时间") private Date updateTime; + /** + * 工艺路线 + */ + @ExcelIgnore private List routeProcessVoList; diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseStationInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseStationInfoVo.java index 3f37b31..93ed805 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseStationInfoVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdBaseStationInfoVo.java @@ -131,5 +131,11 @@ public class ProdBaseStationInfoVo implements Serializable { @ExcelProperty(value = "更新时间") private Date updateTime; + private Long machineId; + /** + * 机台名称 + */ + @ExcelProperty(value = "机台名称") + private String machineName; } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdOrderInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdOrderInfoVo.java index 5ccc970..edaa840 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdOrderInfoVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdOrderInfoVo.java @@ -36,6 +36,13 @@ public class ProdOrderInfoVo implements Serializable { @ExcelProperty(value = "主键标识") private Long productOrderId; + /** + * 租户编号 + */ + @ExcelProperty(value = "租户编号") + private String tenantId; + + /** * 订单编号 */ @@ -205,5 +212,55 @@ public class ProdOrderInfoVo implements Serializable { @ExcelProperty(value = "备注") private String remark; + /** + * 创建部门 + */ + @ExcelProperty(value = "创建部门") + private Long createDept; + + /** + * 创建人 + */ + @ExcelProperty(value = "创建人") + private Long createBy; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + /** + * 更新人 + */ + @ExcelProperty(value = "更新人") + private Long updateBy; + + /** + * 更新时间 + */ + @ExcelProperty(value = "更新时间") + private Date updateTime; + + /** + * 物料名称 + */ + @ExcelProperty(value = "物料名称") + private String materialName;//映射字段 + + /** + * 物料编码 + */ + @ExcelProperty(value = "物料编码") + private String materialCode;//映射字段 + + + /** + * 工艺路线名称 + */ + @ExcelProperty(value = "工艺路线名称") + private String dispatchName;//映射字段 + + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdPlanInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdPlanInfoVo.java index c18eb44..40a43f1 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdPlanInfoVo.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdPlanInfoVo.java @@ -1,6 +1,8 @@ package org.dromara.mes.domain.vo; import java.util.Date; + +import com.alibaba.excel.annotation.ExcelIgnore; import com.fasterxml.jackson.annotation.JsonFormat; import org.dromara.mes.domain.ProdPlanInfo; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; @@ -222,5 +224,21 @@ public class ProdPlanInfoVo implements Serializable { @ExcelProperty(value = "备注") private String remark; + private String materialCode; + private String materialName; + private String processName; + private String shiftName; + private String teamName; + private String materialBomName; + private String releaseName; + + /** + * 工序类别(1生产工序 2质检工序) + */ + @ExcelIgnore + private String processType; + + @ExcelIgnore + private Long processProductionTime; } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdTechnologyInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdTechnologyInfoVo.java new file mode 100644 index 0000000..387a1cb --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdTechnologyInfoVo.java @@ -0,0 +1,96 @@ +package org.dromara.mes.domain.vo; + +import org.dromara.mes.domain.ProdTechnologyInfo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.mes.domain.ProdTechnologyStepInfo; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + + +/** + * 工序工艺信息视图对象 prod_technology_info + * + * @author Yinq + * @date 2025-01-21 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ProdTechnologyInfo.class) +public class ProdTechnologyInfoVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @ExcelProperty(value = "主键标识") + private Long technologyId; + + /** + * 工序ID + */ + @ExcelProperty(value = "工序ID") + private Long processId; + + /** + * 物料ID + */ + @ExcelProperty(value = "物料ID") + private Long materialId; + + /** + * 机台类型(1类一 2类二) + */ + @ExcelProperty(value = "机台类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "mes_machine_type") + private String machineType; + + /** + * 工艺类型(1量产 2限产) + */ + @ExcelProperty(value = "工艺类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "mes_technology_type") + private String technologyType; + + /** + * 工艺版本 + */ + @ExcelProperty(value = "工艺版本") + private String technologyVersion; + + /** + * 硫化标准时间(秒) + */ + @ExcelProperty(value = "硫化标准时间", converter = ExcelDictConvert.class) + private Long standardTime; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + @ExcelProperty(value = "工序名称") + private String processName; + + @ExcelProperty(value = "物料名称") + private String materialName; + + private List prodTechnologyStepInfoList; +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdTechnologyStepInfoVo.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdTechnologyStepInfoVo.java new file mode 100644 index 0000000..ed0fd36 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/domain/vo/ProdTechnologyStepInfoVo.java @@ -0,0 +1,87 @@ +package org.dromara.mes.domain.vo; + +import org.dromara.mes.domain.ProdTechnologyStepInfo; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 工艺步序信息视图对象 prod_technology_step_info + * + * @author Yinq + * @date 2025-01-21 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = ProdTechnologyStepInfo.class) +public class ProdTechnologyStepInfoVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @ExcelProperty(value = "主键标识") + private Long stepId; + + /** + * 工艺ID + */ + @ExcelProperty(value = "工艺ID") + private Long technologyId; + + /** + * 步序编号 + */ + @ExcelProperty(value = "步序编号") + private Long stepCode; + + /** + * 步序名称 + */ + @ExcelProperty(value = "步序名称") + private String stepName; + + /** + * 步序时间(秒) + */ + @ExcelProperty(value = "步序时间", converter = ExcelDictConvert.class) + private Long stepTime; + + /** + * 步序参数 + */ + @ExcelProperty(value = "步序参数") + private String stepParameter; + + /** + * 阀门状态 + */ + @ExcelProperty(value = "阀门状态") + private String valueState; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/dubbo/RemoteMaterialInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/dubbo/RemoteMaterialInfoServiceImpl.java new file mode 100644 index 0000000..b5d5740 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/dubbo/RemoteMaterialInfoServiceImpl.java @@ -0,0 +1,49 @@ +package org.dromara.mes.dubbo; + +import lombok.RequiredArgsConstructor; +import org.apache.dubbo.config.annotation.DubboService; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.mes.api.RemoteMaterialInfoService; +import org.dromara.mes.api.model.bo.BaseMaterialInfoBo; +import org.dromara.mes.domain.BaseMaterialInfo; +import org.dromara.mes.mapper.BaseMaterialInfoMapper; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + + +/** + * 物料接口实现类 + * + * @author Yinq + */ +@RequiredArgsConstructor +@Service +@DubboService +public class RemoteMaterialInfoServiceImpl implements RemoteMaterialInfoService { + + private final BaseMaterialInfoMapper materialInfoMapper; + + /** + * 批量新增物料信息接口 + * @param bos + * @return true成功,false失败 + */ + @Override + public Boolean remoteInsertBaseMaterialInfo(List bos) { + List list = new ArrayList<>(); + for (BaseMaterialInfoBo bo : bos) { + //校验物料是否已存在,若存在则更新数据 + BaseMaterialInfo add = MapstructUtils.convert(bo, BaseMaterialInfo.class); + list.add(add); + } + if (list.size() == 0){ + return false; + } + return materialInfoMapper.insertBatch(list); + } + + + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/BaseStructureBomMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/BaseStructureBomMapper.java new file mode 100644 index 0000000..2cc7076 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/BaseStructureBomMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mes.mapper; + +import org.dromara.mes.domain.BaseStructureBom; +import org.dromara.mes.domain.vo.BaseStructureBomVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 结构BOM信息Mapper接口 + * + * @author zangch + * @date 2025-01-20 + */ +public interface BaseStructureBomMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseMachineInfoMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseMachineInfoMapper.java new file mode 100644 index 0000000..b1da8e7 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseMachineInfoMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mes.mapper; + +import org.dromara.mes.domain.ProdBaseMachineInfo; +import org.dromara.mes.domain.vo.ProdBaseMachineInfoVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 机台信息Mapper接口 + * + * @author zangch + * @date 2025-01-20 + */ +public interface ProdBaseMachineInfoMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessInfoMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessInfoMapper.java index 266f79b..a4b4990 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessInfoMapper.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessInfoMapper.java @@ -1,9 +1,16 @@ package org.dromara.mes.mapper; import org.dromara.mes.domain.ProdBaseProcessInfo; +import org.dromara.mes.domain.ProdBaseProcessProdLine; +import org.dromara.mes.domain.ProdBaseProcessUser; +import org.dromara.mes.domain.bo.ProdBaseProcessInfoBo; +import org.dromara.mes.domain.bo.ProdBaseProcessProdLineBo; +import org.dromara.mes.domain.bo.ProdBaseProcessUserBo; import org.dromara.mes.domain.vo.ProdBaseProcessInfoVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import java.util.List; + /** * 工序信息Mapper接口 * @@ -12,4 +19,108 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface ProdBaseProcessInfoMapper extends BaseMapperPlus { + /** + * 查询工序信息 + * + * @param processId 工序信息主键 + * @return 工序信息 + */ + public ProdBaseProcessInfo selectProdBaseProcessInfoByProcessId(Long processId); + + /** + * 获取工序用户信息详细信息 + * @param processId 工序信息主键 + * @return 工序信息 + */ + public ProdBaseProcessInfo selectProdBaseProcessInfoUserByProcessId(Long processId); + + /** + * 查询工序信息列表 + * + * @param prodBaseProcessInfo 工序信息 + * @return 工序信息集合 + */ + public List selectProdBaseProcessInfoList(ProdBaseProcessInfoBo prodBaseProcessInfo); + + /** + * 新增工序信息 + * + * @param prodBaseProcessInfo 工序信息 + * @return 结果 + */ + public int insertProdBaseProcessInfo(ProdBaseProcessInfoBo prodBaseProcessInfo); + + /** + * 修改工序信息 + * + * @param prodBaseProcessInfo 工序信息 + * @return 结果 + */ + public int updateProdBaseProcessInfo(ProdBaseProcessInfoBo prodBaseProcessInfo); + + /** + * 删除工序信息 + * + * @param processId 工序信息主键 + * @return 结果 + */ + public int deleteProdBaseProcessInfoByProcessId(Long processId); + + /** + * 批量删除工序信息 + * + * @param processIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteProdBaseProcessInfoByProcessIds(Long[] processIds); + + /** + * 批量删除工序关联产线 + * + * @param processIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteProdBaseProcessProdlineByProcessIds(Long[] processIds); + + /** + * 批量新增工序关联产线 + * + * @param prodBaseProcessProdlineList 工序关联产线列表 + * @return 结果 + */ + public int batchProdBaseProcessProdline(List prodBaseProcessProdlineList); + + + /** + * 通过工序信息主键删除工序关联产线信息 + * + * @param processId 工序信息ID + * @return 结果 + */ + public int deleteProdBaseProcessProdlineByProcessId(Long processId); + + /** + * 批量删除工序关联人员 + * + * @param processIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteProdBaseProcessUserByProcessIds(Long[] processIds); + + /** + * 批量新增工序关联人员 + * + * @param prodBaseProcessUserList 工序关联人员列表 + * @return 结果 + */ + public int batchProdBaseProcessUser(List prodBaseProcessUserList); + + + /** + * 通过工序信息主键删除工序关联人员信息 + * + * @param processId 工序信息ID + * @return 结果 + */ + public int deleteProdBaseProcessUserByProcessId(Long processId); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessProdLineMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessProdLineMapper.java new file mode 100644 index 0000000..4210a21 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessProdLineMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mes.mapper; + +import org.dromara.mes.domain.ProdBaseProcessProdLine; +import org.dromara.mes.domain.vo.ProdBaseProcessProdLineVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 工序关联产线Mapper接口 + * + * @author LionLi + * @date 2025-01-09 + */ +public interface ProdBaseProcessProdLineMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessUserMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessUserMapper.java new file mode 100644 index 0000000..b402f29 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseProcessUserMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mes.mapper; + +import org.dromara.mes.domain.ProdBaseProcessUser; +import org.dromara.mes.domain.vo.ProdBaseProcessUserVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 工序关联人员Mapper接口 + * + * @author zangch + * @date 2025-01-09 + */ +public interface ProdBaseProcessUserMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseRouteMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseRouteMapper.java index f1d55ab..ba4a97a 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseRouteMapper.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseRouteMapper.java @@ -30,26 +30,26 @@ public interface ProdBaseRouteMapper extends BaseMapperPlus selectProdBaseRouteList(ProdBaseRoute mesBaseRoute); + public List selectProdBaseRouteList(ProdBaseRoute prodBaseRoute); /** * 新增工艺路线 * - * @param mesBaseRoute 工艺路线 + * @param prodBaseRoute 工艺路线 * @return 结果 */ - public int insertProdBaseRoute(ProdBaseRoute mesBaseRoute); + public int insertProdBaseRoute(ProdBaseRoute prodBaseRoute); /** * 修改工艺路线 * - * @param mesBaseRoute 工艺路线 + * @param prodBaseRoute 工艺路线 * @return 结果 */ - public int updateProdBaseRoute(ProdBaseRoute mesBaseRoute); + public int updateProdBaseRoute(ProdBaseRoute prodBaseRoute); /** * 删除工艺路线 @@ -78,10 +78,10 @@ public interface ProdBaseRouteMapper extends BaseMapperPlus mesBaseRouteProcessList); + public int batchProdBaseRouteProcess(List prodBaseRouteProcessList); /** diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseRouteProcessMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseRouteProcessMapper.java index a036c20..db31187 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseRouteProcessMapper.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdBaseRouteProcessMapper.java @@ -4,6 +4,8 @@ import org.dromara.mes.domain.ProdBaseRouteProcess; import org.dromara.mes.domain.vo.ProdBaseRouteProcessVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import java.util.List; + /** * 工艺路线组成信息Mapper接口 * @@ -12,4 +14,13 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface ProdBaseRouteProcessMapper extends BaseMapperPlus { + /** + * 查询工艺路线组成信息列表,Join prod_base_process_info + * + * @param prodBaseRouteProcess 工艺路线组成信息 + * @return 工艺路线组成信息集合 + */ + public List selectProdBaseRouteProcessJoinList(ProdBaseRouteProcess prodBaseRouteProcess); + + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdOrderInfoMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdOrderInfoMapper.java index f710e70..d3825f2 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdOrderInfoMapper.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdOrderInfoMapper.java @@ -1,9 +1,16 @@ package org.dromara.mes.mapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; import org.dromara.mes.domain.ProdOrderInfo; +import org.dromara.mes.domain.bo.ProdOrderInfoBo; import org.dromara.mes.domain.vo.ProdOrderInfoVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import java.util.List; + /** * 生产订单信息Mapper接口 * @@ -12,4 +19,14 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface ProdOrderInfoMapper extends BaseMapperPlus { + /** + * 查询生产订单信息;生产工单列表 + * @param page + * @param queryWrapper + * @return + */ + public Page selectProdOrderInfoList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + + + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java index 2e2b910..2ff30ce 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdPlanInfoMapper.java @@ -1,9 +1,18 @@ package org.dromara.mes.mapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; +import org.dromara.mes.domain.ProdOrderInfo; import org.dromara.mes.domain.ProdPlanInfo; +import org.dromara.mes.domain.bo.ProdPlanInfoBo; +import org.dromara.mes.domain.vo.ProdOrderInfoVo; import org.dromara.mes.domain.vo.ProdPlanInfoVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import java.util.List; + /** * 生产工单信息Mapper接口 * @@ -12,4 +21,30 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface ProdPlanInfoMapper extends BaseMapperPlus { + /** + * 生产工单列表 + * @param page + * @param queryWrapper + * @return + */ + public Page selectProdPlanInfoList(@Param("page") Page page, @Param("tableName")String tableName,@Param(Constants.WRAPPER) Wrapper queryWrapper); + + /** + * 查询生产派工列表,Join process + * + * @param bo 生产派工 + * @return 生产派工集合 + */ + public List selectProdPlanInfoJoinProcessList(ProdPlanInfoBo bo); + + /** + * 根据查询条件从指定表中获取生产计划列表。 + * + * @param tableName 动态表名 + * @param queryWrapper 查询条件封装对象 + * @return 用户列表 + */ + Page selectProdPlanInfoList(@Param("tableName") String tableName,@Param("page") Page page, + @Param(Constants.WRAPPER) Wrapper queryWrapper); + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdTechnologyInfoMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdTechnologyInfoMapper.java new file mode 100644 index 0000000..934732d --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdTechnologyInfoMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mes.mapper; + +import org.dromara.mes.domain.ProdTechnologyInfo; +import org.dromara.mes.domain.vo.ProdTechnologyInfoVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 工序工艺信息Mapper接口 + * + * @author Yinq + * @date 2025-01-21 + */ +public interface ProdTechnologyInfoMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdTechnologyStepInfoMapper.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdTechnologyStepInfoMapper.java new file mode 100644 index 0000000..b2d9f0b --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/mapper/ProdTechnologyStepInfoMapper.java @@ -0,0 +1,15 @@ +package org.dromara.mes.mapper; + +import org.dromara.mes.domain.ProdTechnologyStepInfo; +import org.dromara.mes.domain.vo.ProdTechnologyStepInfoVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 工艺步序信息Mapper接口 + * + * @author Yinq + * @date 2025-01-21 + */ +public interface ProdTechnologyStepInfoMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IBaseStructureBomService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IBaseStructureBomService.java new file mode 100644 index 0000000..d65a7d1 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IBaseStructureBomService.java @@ -0,0 +1,59 @@ +package org.dromara.mes.service; + +import org.dromara.mes.domain.BaseStructureBom; +import org.dromara.mes.domain.vo.BaseStructureBomVo; +import org.dromara.mes.domain.bo.BaseStructureBomBo; + +import java.util.Collection; +import java.util.List; + +/** + * 结构BOM信息Service接口 + * + * @author zangch + * @date 2025-01-20 + */ +public interface IBaseStructureBomService { + + /** + * 查询结构BOM信息 + * + * @param structureBomId 主键 + * @return 结构BOM信息 + */ + BaseStructureBomVo queryById(Long structureBomId); + + + /** + * 查询符合条件的结构BOM信息列表 + * + * @param bo 查询条件 + * @return 结构BOM信息列表 + */ + List queryList(BaseStructureBomBo bo); + + /** + * 新增结构BOM信息 + * + * @param bo 结构BOM信息 + * @return 是否新增成功 + */ + Boolean insertByBo(BaseStructureBomBo bo); + + /** + * 修改结构BOM信息 + * + * @param bo 结构BOM信息 + * @return 是否修改成功 + */ + Boolean updateByBo(BaseStructureBomBo bo); + + /** + * 校验并批量删除结构BOM信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseMachineInfoService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseMachineInfoService.java new file mode 100644 index 0000000..4f54382 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseMachineInfoService.java @@ -0,0 +1,69 @@ +package org.dromara.mes.service; + +import org.dromara.mes.domain.ProdBaseMachineInfo; +import org.dromara.mes.domain.vo.ProdBaseMachineInfoVo; +import org.dromara.mes.domain.bo.ProdBaseMachineInfoBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 机台信息Service接口 + * + * @author zangch + * @date 2025-01-20 + */ +public interface IProdBaseMachineInfoService { + + /** + * 查询机台信息 + * + * @param machineId 主键 + * @return 机台信息 + */ + ProdBaseMachineInfoVo queryById(Long machineId); + + /** + * 分页查询机台信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机台信息分页列表 + */ + TableDataInfo queryPageList(ProdBaseMachineInfoBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的机台信息列表 + * + * @param bo 查询条件 + * @return 机台信息列表 + */ + List queryList(ProdBaseMachineInfoBo bo); + + /** + * 新增机台信息 + * + * @param bo 机台信息 + * @return 是否新增成功 + */ + Boolean insertByBo(ProdBaseMachineInfoBo bo); + + /** + * 修改机台信息 + * + * @param bo 机台信息 + * @return 是否修改成功 + */ + Boolean updateByBo(ProdBaseMachineInfoBo bo); + + /** + * 校验并批量删除机台信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessInfoService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessInfoService.java index ff84298..b2910c0 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessInfoService.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessInfoService.java @@ -57,6 +57,14 @@ public interface IProdBaseProcessInfoService { */ Boolean updateByBo(ProdBaseProcessInfoBo bo); + /** + * 修改工序信息关联用户 + * + * @param bo 工序信息 + * @return 是否修改成功 + */ + Boolean updateByBoUser(ProdBaseProcessInfoBo bo); + /** * 校验并批量删除工序信息信息 * diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessProdLineService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessProdLineService.java new file mode 100644 index 0000000..df81b3d --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessProdLineService.java @@ -0,0 +1,69 @@ +package org.dromara.mes.service; + +import org.dromara.mes.domain.ProdBaseProcessProdLine; +import org.dromara.mes.domain.vo.ProdBaseProcessProdLineVo; +import org.dromara.mes.domain.bo.ProdBaseProcessProdLineBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 工序关联产线Service接口 + * + * @author LionLi + * @date 2025-01-09 + */ +public interface IProdBaseProcessProdLineService { + + /** + * 查询工序关联产线 + * + * @param processId 主键 + * @return 工序关联产线 + */ + ProdBaseProcessProdLineVo queryById(Long processId); + + /** + * 分页查询工序关联产线列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 工序关联产线分页列表 + */ + TableDataInfo queryPageList(ProdBaseProcessProdLineBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的工序关联产线列表 + * + * @param bo 查询条件 + * @return 工序关联产线列表 + */ + List queryList(ProdBaseProcessProdLineBo bo); + + /** + * 新增工序关联产线 + * + * @param bo 工序关联产线 + * @return 是否新增成功 + */ + Boolean insertByBo(ProdBaseProcessProdLineBo bo); + + /** + * 修改工序关联产线 + * + * @param bo 工序关联产线 + * @return 是否修改成功 + */ + Boolean updateByBo(ProdBaseProcessProdLineBo bo); + + /** + * 校验并批量删除工序关联产线信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessUserService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessUserService.java new file mode 100644 index 0000000..d5a454b --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseProcessUserService.java @@ -0,0 +1,69 @@ +package org.dromara.mes.service; + +import org.dromara.mes.domain.ProdBaseProcessUser; +import org.dromara.mes.domain.vo.ProdBaseProcessUserVo; +import org.dromara.mes.domain.bo.ProdBaseProcessUserBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 工序关联人员Service接口 + * + * @author zangch + * @date 2025-01-09 + */ +public interface IProdBaseProcessUserService { + + /** + * 查询工序关联人员 + * + * @param processId 主键 + * @return 工序关联人员 + */ + ProdBaseProcessUserVo queryById(Long processId); + + /** + * 分页查询工序关联人员列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 工序关联人员分页列表 + */ + TableDataInfo queryPageList(ProdBaseProcessUserBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的工序关联人员列表 + * + * @param bo 查询条件 + * @return 工序关联人员列表 + */ + List queryList(ProdBaseProcessUserBo bo); + + /** + * 新增工序关联人员 + * + * @param bo 工序关联人员 + * @return 是否新增成功 + */ + Boolean insertByBo(ProdBaseProcessUserBo bo); + + /** + * 修改工序关联人员 + * + * @param bo 工序关联人员 + * @return 是否修改成功 + */ + Boolean updateByBo(ProdBaseProcessUserBo bo); + + /** + * 校验并批量删除工序关联人员信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseRouteProcessService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseRouteProcessService.java index 1cc49f7..95b6470 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseRouteProcessService.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseRouteProcessService.java @@ -66,4 +66,13 @@ public interface IProdBaseRouteProcessService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + + /** + * 查询工艺路线组成信息列表,Join mes_base_process + * + * @param prodBaseRouteProcess 工艺路线组成信息 + * @return 工艺路线组成信息 + */ + public List selectProdBaseRouteProcessJoinList(ProdBaseRouteProcess prodBaseRouteProcess); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseRouteService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseRouteService.java index b1cc094..9818db0 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseRouteService.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdBaseRouteService.java @@ -76,5 +76,5 @@ public interface IProdBaseRouteService { * @param routeId 工艺路线主键 * @return 工艺路线 */ - public ProdBaseRouteVo selectMesBaseRouteByRouteId(Long routeId); + public ProdBaseRouteVo selectProdBaseRouteByRouteId(Long routeId); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdMaterialBomService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdMaterialBomService.java index 206eab7..95d9157 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdMaterialBomService.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdMaterialBomService.java @@ -56,4 +56,11 @@ public interface IProdMaterialBomService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 根据结构BOM批量插入物料清单BOM。 + * @param boList 需要插入的物料清单BOM列表。 + * @return 如果所有节点都成功插入,返回true;否则抛出异常。 + */ + Boolean insertBatchByBoList(List boList); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdOrderInfoService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdOrderInfoService.java index 9dfae04..31825bf 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdOrderInfoService.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdOrderInfoService.java @@ -1,6 +1,5 @@ package org.dromara.mes.service; -import org.dromara.mes.domain.ProdOrderInfo; import org.dromara.mes.domain.vo.ProdOrderInfoVo; import org.dromara.mes.domain.bo.ProdOrderInfoBo; import org.dromara.common.mybatis.core.page.TableDataInfo; diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java index 7aaf3d1..d054333 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdPlanInfoService.java @@ -1,6 +1,7 @@ package org.dromara.mes.service; import org.dromara.mes.domain.ProdPlanInfo; +import org.dromara.mes.domain.vo.MesProductPlanEditVo; import org.dromara.mes.domain.vo.ProdPlanInfoVo; import org.dromara.mes.domain.bo.ProdPlanInfoBo; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -66,4 +67,38 @@ public interface IProdPlanInfoService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + + /** + * 获取派工编号 + * + * @return 生产派工 + */ + public String getDispatchCode(); + + /** + * 查询生产派工列表,join process + * + * @param bo 生产派工 + * @return 生产派工 + */ + public List selectProdPlanInfoJoinProcessList(ProdPlanInfoBo bo); + + + /** + * 批量新增生产工单信息 + * + * @param boList 生产工单信息列表 + * @return 是否新增成功 + */ +/* public Boolean insertBatchList(List boList);*/ + + + /** + * 生产工单新增生产派工List + * + * @param mesProductPlanEditVo 生产派工VO对象 + * @return + */ + public int orderAddMesProductPlanList(MesProductPlanEditVo mesProductPlanEditVo); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdTechnologyInfoService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdTechnologyInfoService.java new file mode 100644 index 0000000..310ae09 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdTechnologyInfoService.java @@ -0,0 +1,69 @@ +package org.dromara.mes.service; + +import org.dromara.mes.domain.ProdTechnologyInfo; +import org.dromara.mes.domain.vo.ProdTechnologyInfoVo; +import org.dromara.mes.domain.bo.ProdTechnologyInfoBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 工序工艺信息Service接口 + * + * @author Yinq + * @date 2025-01-21 + */ +public interface IProdTechnologyInfoService { + + /** + * 查询工序工艺信息 + * + * @param technologyId 主键 + * @return 工序工艺信息 + */ + ProdTechnologyInfoVo queryById(Long technologyId); + + /** + * 分页查询工序工艺信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 工序工艺信息分页列表 + */ + TableDataInfo queryPageList(ProdTechnologyInfoBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的工序工艺信息列表 + * + * @param bo 查询条件 + * @return 工序工艺信息列表 + */ + List queryList(ProdTechnologyInfoBo bo); + + /** + * 新增工序工艺信息 + * + * @param bo 工序工艺信息 + * @return 是否新增成功 + */ + Boolean insertByBo(ProdTechnologyInfoBo bo); + + /** + * 修改工序工艺信息 + * + * @param bo 工序工艺信息 + * @return 是否修改成功 + */ + Boolean updateByBo(ProdTechnologyInfoBo bo); + + /** + * 校验并批量删除工序工艺信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdTechnologyStepInfoService.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdTechnologyStepInfoService.java new file mode 100644 index 0000000..ed14a61 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/IProdTechnologyStepInfoService.java @@ -0,0 +1,69 @@ +package org.dromara.mes.service; + +import org.dromara.mes.domain.ProdTechnologyStepInfo; +import org.dromara.mes.domain.vo.ProdTechnologyStepInfoVo; +import org.dromara.mes.domain.bo.ProdTechnologyStepInfoBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 工艺步序信息Service接口 + * + * @author Yinq + * @date 2025-01-21 + */ +public interface IProdTechnologyStepInfoService { + + /** + * 查询工艺步序信息 + * + * @param stepId 主键 + * @return 工艺步序信息 + */ + ProdTechnologyStepInfoVo queryById(Long stepId); + + /** + * 分页查询工艺步序信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 工艺步序信息分页列表 + */ + TableDataInfo queryPageList(ProdTechnologyStepInfoBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的工艺步序信息列表 + * + * @param bo 查询条件 + * @return 工艺步序信息列表 + */ + List queryList(ProdTechnologyStepInfoBo bo); + + /** + * 新增工艺步序信息 + * + * @param bo 工艺步序信息 + * @return 是否新增成功 + */ + Boolean insertByBo(ProdTechnologyStepInfoBo bo); + + /** + * 修改工艺步序信息 + * + * @param bo 工艺步序信息 + * @return 是否修改成功 + */ + Boolean updateByBo(ProdTechnologyStepInfoBo bo); + + /** + * 校验并批量删除工艺步序信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseClassTeamInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseClassTeamInfoServiceImpl.java index 0128cfd..20ddccd 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseClassTeamInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseClassTeamInfoServiceImpl.java @@ -2,6 +2,7 @@ package org.dromara.mes.service.impl; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -138,6 +139,17 @@ public class BaseClassTeamInfoServiceImpl implements IBaseClassTeamInfoService { */ private void validEntityBeforeSave(BaseClassTeamInfo entity){ //TODO 做一些数据校验,如唯一约束 + // 校验编码是否重复 + if (StringUtils.isNotBlank(entity.getTeamCode())) { + BaseClassTeamInfoBo query = new BaseClassTeamInfoBo(); + query.setTeamCode(entity.getTeamCode()); + MPJLambdaWrapper lqw = buildQueryWrapper(query); + BaseClassTeamInfo baseClassTeamInfo = baseMapper.selectOne(lqw); + if (baseClassTeamInfo != null + && !baseClassTeamInfo.getClassTeamId().equals(entity.getClassTeamId())) { + throw new ServiceException("编码已存在"); + } + } } /** diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseEqualMaterialInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseEqualMaterialInfoServiceImpl.java index 8df3baa..4752ab2 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseEqualMaterialInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseEqualMaterialInfoServiceImpl.java @@ -10,6 +10,7 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.mes.domain.BaseMaterialInfo; +import org.dromara.mes.mapper.BaseMaterialInfoMapper; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.BaseEqualMaterialInfoBo; import org.dromara.mes.domain.vo.BaseEqualMaterialInfoVo; @@ -21,6 +22,8 @@ import java.util.List; import java.util.Map; import java.util.Collection; +import org.springframework.util.ObjectUtils; + /** * 等同物料信息Service业务层处理 * @@ -32,6 +35,7 @@ import java.util.Collection; public class BaseEqualMaterialInfoServiceImpl implements IBaseEqualMaterialInfoService { private final BaseEqualMaterialInfoMapper baseMapper; + private final BaseMaterialInfoMapper baseMaterialInfoMapper; /** * 查询等同物料信息 @@ -41,7 +45,16 @@ public class BaseEqualMaterialInfoServiceImpl implements IBaseEqualMaterialInfoS */ @Override public BaseEqualMaterialInfoVo queryById(Long equalMaterialInfoId){ - return baseMapper.selectVoById(equalMaterialInfoId); + BaseEqualMaterialInfoVo baseEqualMaterialInfoVo = baseMapper.selectVoById(equalMaterialInfoId); + if (!ObjectUtils.isEmpty(baseEqualMaterialInfoVo)) { + // 关联物料名称 + BaseMaterialInfo baseMaterialInfo = baseMaterialInfoMapper.selectOne(Wrappers.lambdaQuery(BaseMaterialInfo.class) + .eq(BaseMaterialInfo::getMaterialId, baseEqualMaterialInfoVo.getMaterialId())); + if (!ObjectUtils.isEmpty(baseMaterialInfo)) { + baseEqualMaterialInfoVo.setMaterialName(baseMaterialInfo.getMaterialName()); + } + } + return baseEqualMaterialInfoVo; } /** diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMaterialInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMaterialInfoServiceImpl.java index 3ba89f5..c04469f 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMaterialInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMaterialInfoServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.mes.service.impl; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -9,6 +10,8 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.mes.domain.BaseMaterialType; +import org.dromara.mes.domain.BaseMeasurementUnitInfo; import org.dromara.mes.domain.ProdBaseFactoryInfo; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.BaseMaterialInfoBo; @@ -75,9 +78,21 @@ public class BaseMaterialInfoServiceImpl implements IBaseMaterialInfoService { MPJLambdaWrapper lqw = JoinWrappers.lambda(BaseMaterialInfo.class) .selectAll(BaseMaterialInfo.class) + // 关联查询工厂信息 .select(ProdBaseFactoryInfo::getFactoryName) .leftJoin(ProdBaseFactoryInfo.class, ProdBaseFactoryInfo::getFactoryId, BaseMaterialInfo::getFactoryId) + //关联查询物料类型名称 + .select(BaseMaterialType::getMatrialTypeName) + //注意"e":BaseMaterialType实体类中为matrialTypeId,BaseMaterialInfo实体类中为materialTypeId + .leftJoin(BaseMaterialType.class, BaseMaterialType::getMatrialTypeId, BaseMaterialInfo::getMaterialTypeId) + +/* //关联计量单位信息 + .select(BaseMeasurementUnitInfo::getUnitName) + .leftJoin(BaseMeasurementUnitInfo.class, BaseMeasurementUnitInfo::getUnitId, BaseMaterialInfo::getMaterialUnitId)*/ + + + .eq(bo.getMaterialId() != null, BaseMaterialInfo::getMaterialId, bo.getMaterialId()) .eq(StringUtils.isNotBlank(bo.getErpId()), BaseMaterialInfo::getErpId, bo.getErpId()) @@ -166,6 +181,16 @@ public class BaseMaterialInfoServiceImpl implements IBaseMaterialInfoService { */ private void validEntityBeforeSave(BaseMaterialInfo entity){ //TODO 做一些数据校验,如唯一约束 + if (StringUtils.isNotBlank(entity.getMaterialCode())) { + BaseMaterialInfoBo query = new BaseMaterialInfoBo(); + query.setMaterialCode(entity.getMaterialCode()); + MPJLambdaWrapper lqw = buildQueryWrapper(query); + BaseMaterialInfo baseMaterialInfo = baseMapper.selectOne(lqw); + if (baseMaterialInfo != null + && !baseMaterialInfo.getMaterialId().equals(entity.getMaterialId())) { + throw new ServiceException("编码已存在"); + } + } } /** diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMaterialTypeServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMaterialTypeServiceImpl.java index 7a3ec4e..7ac3ae5 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMaterialTypeServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMaterialTypeServiceImpl.java @@ -1,5 +1,7 @@ package org.dromara.mes.service.impl; +import org.apache.commons.lang3.ObjectUtils; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import com.github.yulichang.toolkit.JoinWrappers; @@ -86,6 +88,17 @@ public class BaseMaterialTypeServiceImpl implements IBaseMaterialTypeService { public Boolean insertByBo(BaseMaterialTypeBo bo) { BaseMaterialType add = MapstructUtils.convert(bo, BaseMaterialType.class); validEntityBeforeSave(add); + + //获取父节点信息 + BaseMaterialTypeVo query = baseMapper.selectVoById(bo.getParentId()); + if (ObjectUtils.isNotEmpty(query)) { + //若父节点不为空,则将父节点的ancestors拼接父节点id拼接成ancestors + add.setAncestors(query.getAncestors() + "," + bo.getParentId()); + }else{ + //若父节点为空,则ancestors仅有父节点id + add.setAncestors(bo.getParentId().toString()); + } + boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setMatrialTypeId(add.getMatrialTypeId()); @@ -111,6 +124,15 @@ public class BaseMaterialTypeServiceImpl implements IBaseMaterialTypeService { */ private void validEntityBeforeSave(BaseMaterialType entity){ //TODO 做一些数据校验,如唯一约束 + if (StringUtils.isNotBlank(entity.getMatrialTypeCode())) { + BaseMaterialTypeBo query = new BaseMaterialTypeBo(); + query.setMatrialTypeCode(entity.getMatrialTypeCode()); + MPJLambdaWrapper lqw = buildQueryWrapper(query); + BaseMaterialType baseMaterialType = baseMapper.selectOne(lqw); + if (baseMaterialType != null && !baseMaterialType.getMatrialTypeId().equals(entity.getMatrialTypeId())) { + throw new ServiceException("编码已存在"); + } + } } /** @@ -124,6 +146,14 @@ public class BaseMaterialTypeServiceImpl implements IBaseMaterialTypeService { public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 + for (Long id : ids) { + //监测删除的节点是否有子节点 + BaseMaterialType query = new BaseMaterialType(); + query.setParentId(id); + if (baseMapper.selectCount(Wrappers.lambdaQuery(query)) > 0) { + throw new ServiceException("存在子节点,不允许删除"); + } + } } return baseMapper.deleteByIds(ids) > 0; } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMeasurementUnitInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMeasurementUnitInfoServiceImpl.java index 6494260..df7f9e1 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMeasurementUnitInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseMeasurementUnitInfoServiceImpl.java @@ -1,5 +1,7 @@ package org.dromara.mes.service.impl; +import org.apache.commons.lang3.ObjectUtils; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import com.github.yulichang.toolkit.JoinWrappers; @@ -79,6 +81,17 @@ public class BaseMeasurementUnitInfoServiceImpl implements IBaseMeasurementUnitI public Boolean insertByBo(BaseMeasurementUnitInfoBo bo) { BaseMeasurementUnitInfo add = MapstructUtils.convert(bo, BaseMeasurementUnitInfo.class); validEntityBeforeSave(add); + + // 获取父节点信息 + BaseMeasurementUnitInfoVo query = baseMapper.selectVoById(bo.getParentId()); + if (ObjectUtils.isNotEmpty(query)) { + //若父节点不为空,则将父节点的ancestors拼接父节点id拼接成ancestors + add.setAncestors(query.getAncestors() + "," + bo.getParentId()); + }else{ + //若父节点为空,则ancestors仅有父节点id + add.setAncestors(bo.getParentId().toString()); + } + boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setUnitId(add.getUnitId()); @@ -104,6 +117,16 @@ public class BaseMeasurementUnitInfoServiceImpl implements IBaseMeasurementUnitI */ private void validEntityBeforeSave(BaseMeasurementUnitInfo entity){ //TODO 做一些数据校验,如唯一约束 + // 校验编码是否重复 + if (StringUtils.isNotBlank(entity.getUnitCode())) { + BaseMeasurementUnitInfoBo query = new BaseMeasurementUnitInfoBo(); + query.setUnitCode(entity.getUnitCode()); + MPJLambdaWrapper lqw = buildQueryWrapper(query); + BaseMeasurementUnitInfo baseMeasurementUnitInfo = baseMapper.selectOne(lqw); + if (baseMeasurementUnitInfo != null && !baseMeasurementUnitInfo.getUnitId().equals(entity.getUnitId())) { + throw new ServiceException("编码已存在"); + } + } } /** @@ -117,6 +140,14 @@ public class BaseMeasurementUnitInfoServiceImpl implements IBaseMeasurementUnitI public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 + for (Long id : ids) { + // 判断是否存在子节点 + BaseMeasurementUnitInfo query = new BaseMeasurementUnitInfo(); + query.setParentId(id); + if (baseMapper.selectCount(Wrappers.lambdaQuery(query)) > 0) { + throw new ServiceException("存在子节点,不允许删除"); + } + } } return baseMapper.deleteByIds(ids) > 0; } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseShiftInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseShiftInfoServiceImpl.java index cd0a182..e38f9ac 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseShiftInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseShiftInfoServiceImpl.java @@ -3,6 +3,7 @@ package org.dromara.mes.service.impl; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.val; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -130,6 +131,16 @@ public class BaseShiftInfoServiceImpl implements IBaseShiftInfoService { */ private void validEntityBeforeSave(BaseShiftInfo entity){ //TODO 做一些数据校验,如唯一约束 + //校验编码是否重复 + if (StringUtils.isNotBlank(entity.getShiftCode())) { + BaseShiftInfoBo query = new BaseShiftInfoBo(); + query.setShiftCode(entity.getShiftCode()); + MPJLambdaWrapper lqw = buildQueryWrapper(query); + BaseShiftInfo baseShiftInfo = baseMapper.selectOne(lqw); + if (baseShiftInfo != null && !baseShiftInfo.getShiftId().equals(entity.getShiftId())) { + throw new ServiceException("编码已存在"); + } + } } /** diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseStructureBomServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseStructureBomServiceImpl.java new file mode 100644 index 0000000..9ed72ad --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseStructureBomServiceImpl.java @@ -0,0 +1,146 @@ +package org.dromara.mes.service.impl; + +import org.apache.commons.lang3.ObjectUtils; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.mes.domain.bo.BaseStructureBomBo; +import org.dromara.mes.domain.vo.BaseStructureBomVo; +import org.dromara.mes.domain.BaseStructureBom; +import org.dromara.mes.mapper.BaseStructureBomMapper; +import org.dromara.mes.service.IBaseStructureBomService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 结构BOM信息Service业务层处理 + * + * @author zangch + * @date 2025-01-20 + */ +@RequiredArgsConstructor +@Service +public class BaseStructureBomServiceImpl implements IBaseStructureBomService { + + private final BaseStructureBomMapper baseMapper; + + /** + * 查询结构BOM信息 + * + * @param structureBomId 主键 + * @return 结构BOM信息 + */ + @Override + public BaseStructureBomVo queryById(Long structureBomId){ + return baseMapper.selectVoById(structureBomId); + } + + + /** + * 查询符合条件的结构BOM信息列表 + * + * @param bo 查询条件 + * @return 结构BOM信息列表 + */ + @Override + public List queryList(BaseStructureBomBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(BaseStructureBomBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(BaseStructureBom.class) + .selectAll(BaseStructureBom.class) + .eq(bo.getStructureBomId() != null, BaseStructureBom::getStructureBomId, bo.getStructureBomId()) + .eq(bo.getParentId() != null, BaseStructureBom::getParentId, bo.getParentId()) + .eq(StringUtils.isNotBlank(bo.getMaterialTypeId()), BaseStructureBom::getMaterialTypeId, bo.getMaterialTypeId()) + .like(StringUtils.isNotBlank(bo.getMaterialTypeName()), BaseStructureBom::getMaterialTypeName, bo.getMaterialTypeName()) + .eq(StringUtils.isNotBlank(bo.getStructureBomDesc()), BaseStructureBom::getStructureBomDesc, bo.getStructureBomDesc()) + .eq(StringUtils.isNotBlank(bo.getStructureBomVersion()), BaseStructureBom::getStructureBomVersion, bo.getStructureBomVersion()) + .eq(StringUtils.isNotBlank(bo.getAncestors()), BaseStructureBom::getAncestors, bo.getAncestors()) + .eq(bo.getLevel() != null, BaseStructureBom::getLevel, bo.getLevel()) + .eq(bo.getTopFlag() != null, BaseStructureBom::getTopFlag, bo.getTopFlag()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), BaseStructureBom::getActiveFlag, bo.getActiveFlag()) + .orderByDesc(BaseStructureBom::getCreateTime); + return lqw; + } + + /** + * 新增结构BOM信息 + * + * @param bo 结构BOM信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(BaseStructureBomBo bo) { + BaseStructureBom add = MapstructUtils.convert(bo, BaseStructureBom.class); + validEntityBeforeSave(add); + + //获取父节点信息 + BaseStructureBomVo query = baseMapper.selectVoById(bo.getParentId()); + if (ObjectUtils.isNotEmpty(query)) { + //若父节点不为空,则将父节点的ancestors拼接父节点id拼接成ancestors + add.setAncestors(query.getAncestors() + "," + bo.getParentId()); + }else{ + //若父节点为空,则ancestors仅有父节点id + add.setAncestors(bo.getParentId().toString()); + } + + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setStructureBomId(add.getStructureBomId()); + } + return flag; + } + + /** + * 修改结构BOM信息 + * + * @param bo 结构BOM信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(BaseStructureBomBo bo) { + BaseStructureBom update = MapstructUtils.convert(bo, BaseStructureBom.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(BaseStructureBom entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除结构BOM信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + for (Long id : ids) { + //监测删除的节点是否有子节点 + BaseStructureBom query = new BaseStructureBom(); + query.setParentId(id); + if (baseMapper.selectCount(Wrappers.lambdaQuery(query)) > 0) { + throw new ServiceException("存在子节点,不允许删除"); + } + } + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseSupplierInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseSupplierInfoServiceImpl.java index 9185a33..dedfae4 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseSupplierInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseSupplierInfoServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.mes.service.impl; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -121,6 +122,16 @@ public class BaseSupplierInfoServiceImpl implements IBaseSupplierInfoService { */ private void validEntityBeforeSave(BaseSupplierInfo entity){ //TODO 做一些数据校验,如唯一约束 + //校验编码是否重复 + if (StringUtils.isNotBlank(entity.getSupplierCode())) { + BaseSupplierInfoBo query = new BaseSupplierInfoBo(); + query.setSupplierCode(entity.getSupplierCode()); + MPJLambdaWrapper lqw = buildQueryWrapper(query); + BaseSupplierInfo baseSupplierInfo = baseMapper.selectOne(lqw); + if (baseSupplierInfo != null && !baseSupplierInfo.getSupplierId().equals(entity.getSupplierId())) { + throw new ServiceException("编码已存在"); + } + } } /** diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseToolingInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseToolingInfoServiceImpl.java index 687e538..4398e9a 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseToolingInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/BaseToolingInfoServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.mes.service.impl; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -122,6 +123,16 @@ public class BaseToolingInfoServiceImpl implements IBaseToolingInfoService { */ private void validEntityBeforeSave(BaseToolingInfo entity){ //TODO 做一些数据校验,如唯一约束 + // 校验编码是否已存在 + if (StringUtils.isNotBlank(entity.getToolingCode())) { + BaseToolingInfoBo query = new BaseToolingInfoBo(); + query.setToolingCode(entity.getToolingCode()); + MPJLambdaWrapper lqw = buildQueryWrapper(query); + BaseToolingInfo baseToolingInfo = baseMapper.selectOne(lqw); + if (baseToolingInfo != null && !baseToolingInfo.getToolingId().equals(entity.getToolingId())) { + throw new ServiceException("编码已存在"); + } + } } /** diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseFactoryInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseFactoryInfoServiceImpl.java index 73f17fb..3ba43be 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseFactoryInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseFactoryInfoServiceImpl.java @@ -1,5 +1,7 @@ package org.dromara.mes.service.impl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -118,6 +120,15 @@ public class ProdBaseFactoryInfoServiceImpl implements IProdBaseFactoryInfoServi */ private void validEntityBeforeSave(ProdBaseFactoryInfo entity){ //TODO 做一些数据校验,如唯一约束 + if (StringUtils.isNotBlank(entity.getFactoryCode())) { + ProdBaseFactoryInfoBo query = new ProdBaseFactoryInfoBo(); + query.setFactoryCode(entity.getFactoryCode()); + LambdaQueryWrapper lqw = buildQueryWrapper(query); + ProdBaseFactoryInfo baseProdBaseFactoryInfo = baseMapper.selectOne(lqw); + if (baseProdBaseFactoryInfo != null && !baseProdBaseFactoryInfo.getFactoryId().equals(entity.getFactoryId())) { + throw new ServiceException("编码已存在"); + } + } } /** diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseMachineInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseMachineInfoServiceImpl.java new file mode 100644 index 0000000..677a04b --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseMachineInfoServiceImpl.java @@ -0,0 +1,156 @@ +package org.dromara.mes.service.impl; + +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.mes.domain.ProdBaseProcessInfo; +import org.dromara.mes.domain.ProdBaseStationInfo; +import org.springframework.stereotype.Service; +import org.dromara.mes.domain.bo.ProdBaseMachineInfoBo; +import org.dromara.mes.domain.vo.ProdBaseMachineInfoVo; +import org.dromara.mes.domain.ProdBaseMachineInfo; +import org.dromara.mes.mapper.ProdBaseMachineInfoMapper; +import org.dromara.mes.service.IProdBaseMachineInfoService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 机台信息Service业务层处理 + * + * @author zangch + * @date 2025-01-20 + */ +@RequiredArgsConstructor +@Service +public class ProdBaseMachineInfoServiceImpl implements IProdBaseMachineInfoService { + + private final ProdBaseMachineInfoMapper baseMapper; + + /** + * 查询机台信息 + * + * @param machineId 主键 + * @return 机台信息 + */ + @Override + public ProdBaseMachineInfoVo queryById(Long machineId){ + return baseMapper.selectVoById(machineId); + } + + /** + * 分页查询机台信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 机台信息分页列表 + */ + @Override + public TableDataInfo queryPageList(ProdBaseMachineInfoBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的机台信息列表 + * + * @param bo 查询条件 + * @return 机台信息列表 + */ + @Override + public List queryList(ProdBaseMachineInfoBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ProdBaseMachineInfoBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdBaseMachineInfo.class) + .selectAll(ProdBaseMachineInfo.class) + .leftJoin(ProdBaseStationInfo.class, ProdBaseStationInfo::getMachineId, ProdBaseMachineInfo::getMachineId) + .leftJoin(ProdBaseProcessInfo.class, ProdBaseProcessInfo::getProcessId, ProdBaseStationInfo::getProcessId) + .eq(bo.getMachineId() != null, ProdBaseMachineInfo::getMachineId, bo.getMachineId()) + .eq(StringUtils.isNotBlank(bo.getMachineCode()), ProdBaseMachineInfo::getMachineCode, bo.getMachineCode()) + .like(StringUtils.isNotBlank(bo.getMachineName()), ProdBaseMachineInfo::getMachineName, bo.getMachineName()) + .eq(StringUtils.isNotBlank(bo.getAssetNumber()), ProdBaseMachineInfo::getAssetNumber, bo.getAssetNumber()) + .eq(StringUtils.isNotBlank(bo.getMachineLocation()), ProdBaseMachineInfo::getMachineLocation, bo.getMachineLocation()) + .eq(StringUtils.isNotBlank(bo.getMachineType()), ProdBaseMachineInfo::getMachineType, bo.getMachineType()) + .eq(StringUtils.isNotBlank(bo.getMachineSpec()), ProdBaseMachineInfo::getMachineSpec, bo.getMachineSpec()) + .eq(StringUtils.isNotBlank(bo.getSupplierId()), ProdBaseMachineInfo::getSupplierId, bo.getSupplierId()) + .eq(StringUtils.isNotBlank(bo.getMachineStatus()), ProdBaseMachineInfo::getMachineStatus, bo.getMachineStatus()) + .eq(StringUtils.isNotNull(bo.getProcessId()), ProdBaseProcessInfo::getProcessId, bo.getProcessId()) + .orderByAsc(ProdBaseMachineInfo::getCreateTime); + return lqw; + } + + /** + * 新增机台信息 + * + * @param bo 机台信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ProdBaseMachineInfoBo bo) { + ProdBaseMachineInfo add = MapstructUtils.convert(bo, ProdBaseMachineInfo.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setMachineId(add.getMachineId()); + } + return flag; + } + + /** + * 修改机台信息 + * + * @param bo 机台信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ProdBaseMachineInfoBo bo) { + ProdBaseMachineInfo update = MapstructUtils.convert(bo, ProdBaseMachineInfo.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ProdBaseMachineInfo entity){ + //TODO 做一些数据校验,如唯一约束 + if (StringUtils.isNotBlank(entity.getMachineCode())) { + ProdBaseMachineInfoBo query = new ProdBaseMachineInfoBo(); + query.setMachineCode(entity.getMachineCode()); + MPJLambdaWrapper lqw = buildQueryWrapper(query); + ProdBaseMachineInfo baseProdBaseMachineInfo = baseMapper.selectOne(lqw); + if (baseProdBaseMachineInfo != null + && !baseProdBaseMachineInfo.getMachineId().equals(entity.getMachineId())) { + throw new ServiceException("编码已存在"); + } + } + } + + /** + * 校验并批量删除机台信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessInfoServiceImpl.java index d231564..16456f4 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessInfoServiceImpl.java @@ -1,5 +1,8 @@ package org.dromara.mes.service.impl; +import cn.hutool.core.util.ObjectUtil; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -8,13 +11,24 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.mes.domain.ProdBaseProcessProdLine; +import org.dromara.mes.domain.ProdBaseProcessUser; +import org.dromara.mes.domain.bo.ProdBaseProcessProdLineBo; +import org.dromara.mes.domain.bo.ProdBaseProcessUserBo; +import org.dromara.mes.domain.vo.ProdBaseProcessProdLineVo; +import org.dromara.mes.domain.vo.ProdBaseProcessUserVo; +import org.dromara.mes.mapper.ProdBaseProcessProdLineMapper; +import org.dromara.mes.mapper.ProdBaseProcessUserMapper; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.ProdBaseProcessInfoBo; import org.dromara.mes.domain.vo.ProdBaseProcessInfoVo; import org.dromara.mes.domain.ProdBaseProcessInfo; import org.dromara.mes.mapper.ProdBaseProcessInfoMapper; import org.dromara.mes.service.IProdBaseProcessInfoService; +import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Collection; @@ -31,6 +45,16 @@ public class ProdBaseProcessInfoServiceImpl implements IProdBaseProcessInfoServi private final ProdBaseProcessInfoMapper baseMapper; + private final ProdBaseProcessUserServiceImpl prodBaseProcessUserService; + + private final ProdBaseProcessProdLineServiceImpl prodBaseProcessProdlineService; + + private final ProdBaseProcessUserMapper prodBaseProcessUserMapper; + private final ProdBaseProcessProdLineMapper prodBaseProcessProdlineMapper; + + + + /** * 查询工序信息 * @@ -39,7 +63,23 @@ public class ProdBaseProcessInfoServiceImpl implements IProdBaseProcessInfoServi */ @Override public ProdBaseProcessInfoVo queryById(Long processId){ - return baseMapper.selectVoById(processId); + ProdBaseProcessInfoVo prodBaseProcessInfoVo = baseMapper.selectVoById(processId); + if (ObjectUtil.isNotEmpty(prodBaseProcessInfoVo)) { + // 关联人员 + ProdBaseProcessUserBo prodBaseProcessUserBo = new ProdBaseProcessUserBo(); + prodBaseProcessUserBo.setProcessId(processId); + List prodBaseProcessUserVoList = prodBaseProcessUserService.queryList(prodBaseProcessUserBo); + // 关联人员若有数据,则赋值给prodBaseProcessInfoVo + if(ObjectUtil.isNotEmpty(prodBaseProcessUserVoList)) prodBaseProcessInfoVo.setProdBaseProcessUserVoList(prodBaseProcessUserVoList); + + // 关联产线 + ProdBaseProcessProdLineBo prodBaseProcessProdlineBo = new ProdBaseProcessProdLineBo(); + prodBaseProcessProdlineBo.setProcessId(processId); + List prodBaseProcessProdlineVoList = prodBaseProcessProdlineService.queryList(prodBaseProcessProdlineBo); + // 关联产线若有数据,则赋值给prodBaseProcessInfoVo + if(ObjectUtil.isNotEmpty(prodBaseProcessProdlineVoList)) prodBaseProcessInfoVo.setProdBaseProcessProdlineVoList(prodBaseProcessProdlineVoList); + } + return prodBaseProcessInfoVo; } /** @@ -72,6 +112,17 @@ public class ProdBaseProcessInfoServiceImpl implements IProdBaseProcessInfoServi Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdBaseProcessInfo.class) .selectAll(ProdBaseProcessInfo.class) + +/* // 关联人员 + .select(ProdBaseProcessUser::getUserId) + .select(ProdBaseProcessUser::getUserName) + .leftJoin(ProdBaseProcessUser.class, ProdBaseProcessUser::getProcessId, ProdBaseProcessInfo::getProcessId) + + // 关联产线 + .select(ProdBaseProcessProdLine::getProdLineId) + .leftJoin(ProdBaseProcessProdLine.class, ProdBaseProcessProdLine::getProcessId, ProdBaseProcessInfo::getProcessId)*/ + + .eq(bo.getProcessId() != null, ProdBaseProcessInfo::getProcessId, bo.getProcessId()) .eq(StringUtils.isNotBlank(bo.getProcessCode()), ProdBaseProcessInfo::getProcessCode, bo.getProcessCode()) .like(StringUtils.isNotBlank(bo.getProcessName()), ProdBaseProcessInfo::getProcessName, bo.getProcessName()) @@ -106,18 +157,91 @@ public class ProdBaseProcessInfoServiceImpl implements IProdBaseProcessInfoServi * @param bo 工序信息 * @return 是否修改成功 */ + @Transactional @Override public Boolean updateByBo(ProdBaseProcessInfoBo bo) { ProdBaseProcessInfo update = MapstructUtils.convert(bo, ProdBaseProcessInfo.class); + + String tenantId = LoginHelper.getTenantId(); + Long deptId = LoginHelper.getDeptId(); + Long userId = LoginHelper.getUserId(); + if (ObjectUtil.isNotEmpty(tenantId)) update.setTenantId(tenantId); + if (ObjectUtil.isNotEmpty(deptId)) update.setCreateDept(deptId); + if (ObjectUtil.isNotEmpty(userId)) update.setCreateBy(userId); + update.setCreateTime(DateUtils.getNowDate()); + + validEntityBeforeSave(update); + + List prodBaseProcessProdlineList = new ArrayList<>(); + List prodBaseProcessProdlineBoList = bo.getProdBaseProcessProdlineBoList(); + if(ObjectUtil.isNotEmpty(prodBaseProcessProdlineBoList)){ + prodBaseProcessProdlineList = MapstructUtils.convert(prodBaseProcessProdlineBoList, ProdBaseProcessProdLine.class); + update.setProdBaseProcessProdlineList(prodBaseProcessProdlineList); + } + baseMapper.deleteProdBaseProcessProdlineByProcessId(update.getProcessId()); + try { + insertProdBaseProcessProdline(update); + }catch (Exception e){ + throw new ServiceException("该工序已关联产线!"); + } return baseMapper.updateById(update) > 0; } + /** + * 修改工序信息关联人员 + * + * @param bo 工序信息 + * @return 是否修改成功 + */ + @Transactional + @Override + public Boolean updateByBoUser(ProdBaseProcessInfoBo bo) { + ProdBaseProcessInfo update = MapstructUtils.convert(bo, ProdBaseProcessInfo.class); + + String tenantId = LoginHelper.getTenantId();// 获取当前租户ID + Long deptId = LoginHelper.getDeptId();// 获取当前部门ID + Long userId = LoginHelper.getUserId();// 获取当前用户ID + if (ObjectUtil.isNotEmpty(tenantId)) update.setTenantId(tenantId);// 设置当前租户ID + if (ObjectUtil.isNotEmpty(deptId)) update.setCreateDept(deptId);// 设置当前部门ID + if (ObjectUtil.isNotEmpty(userId)) update.setCreateBy(userId);// 设置当前用户ID + update.setCreateTime(DateUtils.getNowDate());// 设置当前时间 + + validEntityBeforeSave(update); + + List prodBaseProcessUserList = new ArrayList<>(); + List prodBaseProcessUserBoList = bo.getProdBaseProcessUserBoList(); + if(ObjectUtil.isNotEmpty(prodBaseProcessUserBoList)){ + prodBaseProcessUserList = MapstructUtils.convert(prodBaseProcessUserBoList, ProdBaseProcessUser.class); + } + baseMapper.deleteProdBaseProcessUserByProcessId(update.getProcessId()); + update.setProdBaseProcessUserList(prodBaseProcessUserList); + try { + insertProdBaseProcessUser(update); + }catch (Exception e){ + System.out.println(e.getMessage()); + throw new ServiceException("该工序已关联用户!"); + } + return baseMapper.updateById(update) > 0; + } + + + /** * 保存前的数据校验 */ private void validEntityBeforeSave(ProdBaseProcessInfo entity){ //TODO 做一些数据校验,如唯一约束 + // 判断编码是否重复 + if (StringUtils.isNotBlank(entity.getProcessCode())) { + ProdBaseProcessInfoBo query = new ProdBaseProcessInfoBo(); + query.setProcessCode(entity.getProcessCode()); + MPJLambdaWrapper lqw = buildQueryWrapper(query); + ProdBaseProcessInfo prodBaseProcessInfo = baseMapper.selectOne(lqw); + if (prodBaseProcessInfo != null && !prodBaseProcessInfo.getProcessId().equals(entity.getProcessId())) { + throw new ServiceException("编码已存在"); + } + } } /** @@ -134,4 +258,53 @@ public class ProdBaseProcessInfoServiceImpl implements IProdBaseProcessInfoServi } return baseMapper.deleteByIds(ids) > 0; } + + /** + * 新增工序关联产线信息 + * + * @param prodBaseProcessInfo 工序信息对象 + */ + public void insertProdBaseProcessProdline(ProdBaseProcessInfo prodBaseProcessInfo) { + List prodBaseProcessProdlineList = prodBaseProcessInfo.getProdBaseProcessProdlineList(); + Long processId = prodBaseProcessInfo.getProcessId(); + if (ObjectUtil.isNotNull(prodBaseProcessProdlineList)) { + List list = new ArrayList(); + for (ProdBaseProcessProdLine prodBaseProcessProdline : prodBaseProcessProdlineList) { + prodBaseProcessProdline.setCreateBy(prodBaseProcessInfo.getCreateBy()); + prodBaseProcessProdline.setCreateTime(prodBaseProcessInfo.getCreateTime()); + prodBaseProcessProdline.setCreateDept(prodBaseProcessInfo.getCreateDept()); + prodBaseProcessProdline.setTenantId(prodBaseProcessInfo.getTenantId()); + list.add(prodBaseProcessProdline); + } + if (!list.isEmpty()) { + prodBaseProcessProdlineMapper.insertBatch(list); + } + } + } + /** + * 新增工序关联用户信息 + * + * @param prodBaseProcessInfo 工序信息对象 + */ + public void insertProdBaseProcessUser(ProdBaseProcessInfo prodBaseProcessInfo) { + List prodBaseProcessUserList = prodBaseProcessInfo.getProdBaseProcessUserList(); + Long processId = prodBaseProcessInfo.getProcessId(); + if (ObjectUtil.isNotNull(prodBaseProcessUserList)) { + List list = new ArrayList(); + for (ProdBaseProcessUser prodBaseProcessUser : prodBaseProcessUserList) { + prodBaseProcessUser.setCreateBy(prodBaseProcessInfo.getCreateBy()); + prodBaseProcessUser.setCreateTime(prodBaseProcessInfo.getCreateTime()); + prodBaseProcessUser.setCreateDept(prodBaseProcessInfo.getCreateDept()); + prodBaseProcessUser.setTenantId(prodBaseProcessInfo.getTenantId()); + + list.add(prodBaseProcessUser); + } + if (!list.isEmpty()) { + prodBaseProcessUserMapper.insertBatch(list); + } + } + } + + + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessProdLineServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessProdLineServiceImpl.java new file mode 100644 index 0000000..f2e8520 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessProdLineServiceImpl.java @@ -0,0 +1,133 @@ +package org.dromara.mes.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.mes.domain.bo.ProdBaseProcessProdLineBo; +import org.dromara.mes.domain.vo.ProdBaseProcessProdLineVo; +import org.dromara.mes.domain.ProdBaseProcessProdLine; +import org.dromara.mes.mapper.ProdBaseProcessProdLineMapper; +import org.dromara.mes.service.IProdBaseProcessProdLineService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 工序关联产线Service业务层处理 + * + * @author LionLi + * @date 2025-01-09 + */ +@RequiredArgsConstructor +@Service +public class ProdBaseProcessProdLineServiceImpl implements IProdBaseProcessProdLineService { + + private final ProdBaseProcessProdLineMapper baseMapper; + + /** + * 查询工序关联产线 + * + * @param processId 主键 + * @return 工序关联产线 + */ + @Override + public ProdBaseProcessProdLineVo queryById(Long processId){ + return baseMapper.selectVoById(processId); + } + + /** + * 分页查询工序关联产线列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 工序关联产线分页列表 + */ + @Override + public TableDataInfo queryPageList(ProdBaseProcessProdLineBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的工序关联产线列表 + * + * @param bo 查询条件 + * @return 工序关联产线列表 + */ + @Override + public List queryList(ProdBaseProcessProdLineBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ProdBaseProcessProdLineBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdBaseProcessProdLine.class) + .selectAll(ProdBaseProcessProdLine.class) + .eq(bo.getProcessId() != null, ProdBaseProcessProdLine::getProcessId, bo.getProcessId()) + .eq(bo.getProdLineId() != null, ProdBaseProcessProdLine::getProdLineId, bo.getProdLineId()) + .orderByDesc(ProdBaseProcessProdLine::getCreateTime); + return lqw; + } + + /** + * 新增工序关联产线 + * + * @param bo 工序关联产线 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ProdBaseProcessProdLineBo bo) { + ProdBaseProcessProdLine add = MapstructUtils.convert(bo, ProdBaseProcessProdLine.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setProcessId(add.getProcessId()); + } + return flag; + } + + /** + * 修改工序关联产线 + * + * @param bo 工序关联产线 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ProdBaseProcessProdLineBo bo) { + ProdBaseProcessProdLine update = MapstructUtils.convert(bo, ProdBaseProcessProdLine.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ProdBaseProcessProdLine entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除工序关联产线信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessUserServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessUserServiceImpl.java new file mode 100644 index 0000000..5f48228 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProcessUserServiceImpl.java @@ -0,0 +1,134 @@ +package org.dromara.mes.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.mes.domain.bo.ProdBaseProcessUserBo; +import org.dromara.mes.domain.vo.ProdBaseProcessUserVo; +import org.dromara.mes.domain.ProdBaseProcessUser; +import org.dromara.mes.mapper.ProdBaseProcessUserMapper; +import org.dromara.mes.service.IProdBaseProcessUserService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 工序关联人员Service业务层处理 + * + * @author zangch + * @date 2025-01-09 + */ +@RequiredArgsConstructor +@Service +public class ProdBaseProcessUserServiceImpl implements IProdBaseProcessUserService { + + private final ProdBaseProcessUserMapper baseMapper; + + /** + * 查询工序关联人员 + * + * @param processId 主键 + * @return 工序关联人员 + */ + @Override + public ProdBaseProcessUserVo queryById(Long processId){ + return baseMapper.selectVoById(processId); + } + + /** + * 分页查询工序关联人员列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 工序关联人员分页列表 + */ + @Override + public TableDataInfo queryPageList(ProdBaseProcessUserBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的工序关联人员列表 + * + * @param bo 查询条件 + * @return 工序关联人员列表 + */ + @Override + public List queryList(ProdBaseProcessUserBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ProdBaseProcessUserBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdBaseProcessUser.class) + .selectAll(ProdBaseProcessUser.class) + .eq(bo.getProcessId() != null, ProdBaseProcessUser::getProcessId, bo.getProcessId()) + .eq(bo.getUserId() != null, ProdBaseProcessUser::getUserId, bo.getUserId()) + .like(StringUtils.isNotBlank(bo.getUserName()), ProdBaseProcessUser::getUserName, bo.getUserName()) + .orderByDesc(ProdBaseProcessUser::getCreateTime); + return lqw; + } + + /** + * 新增工序关联人员 + * + * @param bo 工序关联人员 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ProdBaseProcessUserBo bo) { + ProdBaseProcessUser add = MapstructUtils.convert(bo, ProdBaseProcessUser.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setProcessId(add.getProcessId()); + } + return flag; + } + + /** + * 修改工序关联人员 + * + * @param bo 工序关联人员 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ProdBaseProcessUserBo bo) { + ProdBaseProcessUser update = MapstructUtils.convert(bo, ProdBaseProcessUser.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ProdBaseProcessUser entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除工序关联人员信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProdLineInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProdLineInfoServiceImpl.java index e03bc02..c6029fb 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProdLineInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseProdLineInfoServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.mes.service.impl; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -121,6 +122,17 @@ public class ProdBaseProdLineInfoServiceImpl implements IProdBaseProdLineInfoSer */ private void validEntityBeforeSave(ProdBaseProdLineInfo entity){ //TODO 做一些数据校验,如唯一约束 + // 校验编码是否重复 + if (StringUtils.isNotBlank(entity.getProdLineCode())) { + ProdBaseProdLineInfoBo query = new ProdBaseProdLineInfoBo(); + query.setProdLineCode(entity.getProdLineCode()); + MPJLambdaWrapper lqw = buildQueryWrapper(query); + ProdBaseProdLineInfo prodBaseProdLineInfo = baseMapper.selectOne(lqw); + if (prodBaseProdLineInfo != null + && !prodBaseProdLineInfo.getProdLineId().equals(entity.getProdLineId())) { + throw new ServiceException("编码已存在"); + } + } } /** diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseRouteProcessServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseRouteProcessServiceImpl.java index c99fcd6..cd99740 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseRouteProcessServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseRouteProcessServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.mes.domain.ProdBaseProcessInfo; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.ProdBaseRouteProcessBo; import org.dromara.mes.domain.vo.ProdBaseRouteProcessVo; @@ -32,6 +33,8 @@ public class ProdBaseRouteProcessServiceImpl implements IProdBaseRouteProcessSer private final ProdBaseRouteProcessMapper baseMapper; + private final ProdBaseRouteProcessMapper prodBaseRouteProcessMapper; + /** * 查询工艺路线组成信息 * @@ -73,6 +76,11 @@ public class ProdBaseRouteProcessServiceImpl implements IProdBaseRouteProcessSer Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdBaseRouteProcess.class) .selectAll(ProdBaseRouteProcess.class) + + .select(ProdBaseProcessInfo::getProcessName) + .select(ProdBaseProcessInfo::getProcessType) + .leftJoin(ProdBaseProcessInfo.class, ProdBaseProcessInfo::getProcessId, ProdBaseRouteProcess::getProcessId) + .eq(bo.getRouteProcessId() != null, ProdBaseRouteProcess::getRouteProcessId, bo.getRouteProcessId()) .eq(bo.getRouteId() != null, ProdBaseRouteProcess::getRouteId, bo.getRouteId()) .eq(bo.getProcessId() != null, ProdBaseRouteProcess::getProcessId, bo.getProcessId()) @@ -132,4 +140,17 @@ public class ProdBaseRouteProcessServiceImpl implements IProdBaseRouteProcessSer } return baseMapper.deleteByIds(ids) > 0; } + + /** + * 查询工艺路线组成信息列表,Join mes_base_process + * + * @param prodBaseRouteProcess 工艺路线组成信息 + * @return 工艺路线组成信息 + */ + @Override + public List selectProdBaseRouteProcessJoinList(ProdBaseRouteProcess prodBaseRouteProcess) + { + return prodBaseRouteProcessMapper.selectProdBaseRouteProcessJoinList(prodBaseRouteProcess); + } + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseRouteServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseRouteServiceImpl.java index 359c4fa..530dec0 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseRouteServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseRouteServiceImpl.java @@ -166,22 +166,22 @@ public class ProdBaseRouteServiceImpl implements IProdBaseRouteService { public void insertProdBaseRouteProcess(ProdBaseRouteBo bo) { // 获取工艺路线中的工艺步骤列表 - List mesBaseRouteProcessList = bo.getRouteProcessBoList(); + List prodBaseRouteProcessList = bo.getRouteProcessBoList(); // 获取工艺路线ID Long routeId = bo.getRouteId(); // 如果工艺步骤列表不为空 - if (ObjectUtil.isNotNull(mesBaseRouteProcessList)) + if (ObjectUtil.isNotNull(prodBaseRouteProcessList)) { // 创建一个新的工艺步骤列表 List list = new ArrayList(); // 遍历每一个工艺步骤 - for (ProdBaseRouteProcessBo mesBaseRouteProcess : mesBaseRouteProcessList) + for (ProdBaseRouteProcessBo prodBaseRouteProcess : prodBaseRouteProcessList) { // 设置工艺步骤的工艺路线ID - mesBaseRouteProcess.setRouteId(routeId); + prodBaseRouteProcess.setRouteId(routeId); // 将工艺步骤添加到新的列表中 - list.add(mesBaseRouteProcess); + list.add(prodBaseRouteProcess); } // 如果新的工艺步骤列表不为空 if (!list.isEmpty()) @@ -209,7 +209,7 @@ public class ProdBaseRouteServiceImpl implements IProdBaseRouteService { * @return 工艺路线 */ @Override - public ProdBaseRouteVo selectMesBaseRouteByRouteId(Long routeId) + public ProdBaseRouteVo selectProdBaseRouteByRouteId(Long routeId) { return routeMapper.selectProdBaseRouteByRouteId(routeId); } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseStationInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseStationInfoServiceImpl.java index 5e173e3..6ff215c 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseStationInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseStationInfoServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.mes.domain.ProdBaseMachineInfo; import org.dromara.mes.domain.ProdBaseProcessInfo; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.ProdBaseStationInfoBo; @@ -75,16 +76,19 @@ public class ProdBaseStationInfoServiceImpl implements IProdBaseStationInfoServi MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdBaseStationInfo.class) .selectAll(ProdBaseStationInfo.class) .select(ProdBaseProcessInfo::getProcessName) + .select(ProdBaseMachineInfo::getMachineName) .leftJoin(ProdBaseProcessInfo.class, ProdBaseProcessInfo::getProcessId, ProdBaseStationInfo::getProcessId) + .leftJoin(ProdBaseMachineInfo.class, ProdBaseMachineInfo::getMachineId, ProdBaseStationInfo::getMachineId) .eq(bo.getStationId() != null, ProdBaseStationInfo::getStationId, bo.getStationId()) .eq(StringUtils.isNotBlank(bo.getStationCode()), ProdBaseStationInfo::getStationCode, bo.getStationCode()) .like(StringUtils.isNotBlank(bo.getStationName()), ProdBaseStationInfo::getStationName, bo.getStationName()) .eq(StringUtils.isNotBlank(bo.getStationType()), ProdBaseStationInfo::getStationType, bo.getStationType()) .eq(bo.getProcessId() != null, ProdBaseStationInfo::getProcessId, bo.getProcessId()) + .eq(bo.getMachineId() != null, ProdBaseStationInfo::getMachineId, bo.getMachineId()) .like(StringUtils.isNotBlank(bo.getAgvCode()), ProdBaseStationInfo::getAgvCode, bo.getAgvCode()) .like(StringUtils.isNotBlank(bo.getIpAddress()), ProdBaseStationInfo::getIpAddress, bo.getIpAddress()) .eq(StringUtils.isNotBlank(bo.getActiveFlag()), ProdBaseStationInfo::getActiveFlag, bo.getActiveFlag()) - .orderByDesc(ProdBaseStationInfo::getCreateTime); + .orderByAsc(ProdBaseStationInfo::getCreateTime); return lqw; } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseWorkshopInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseWorkshopInfoServiceImpl.java index 73c96f6..93b4ded 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseWorkshopInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdBaseWorkshopInfoServiceImpl.java @@ -2,6 +2,7 @@ package org.dromara.mes.service.impl; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -118,6 +119,16 @@ public class ProdBaseWorkshopInfoServiceImpl implements IProdBaseWorkshopInfoSer */ private void validEntityBeforeSave(ProdBaseWorkshopInfo entity) { //TODO 做一些数据校验,如唯一约束 + // 校验编码是否重复 + if (StringUtils.isNotBlank(entity.getWorkshopCode())) { + ProdBaseWorkshopInfoBo query = new ProdBaseWorkshopInfoBo(); + query.setWorkshopCode(entity.getWorkshopCode()); + MPJLambdaWrapper lqw = buildQueryWrapper(query); + ProdBaseWorkshopInfo prodBaseWorkshopInfo = baseMapper.selectOne(lqw); + if (prodBaseWorkshopInfo != null && !prodBaseWorkshopInfo.getWorkshopId().equals(entity.getWorkshopId())) { + throw new ServiceException("编码已存在"); + } + } } /** diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomServiceImpl.java index 344669d..6767f87 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdMaterialBomServiceImpl.java @@ -15,6 +15,14 @@ import org.dromara.mes.service.IProdMaterialBomService; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.stream.Collectors; +import java.util.ArrayList; +import java.util.HashMap; + +import org.springframework.transaction.annotation.Transactional; +import cn.hutool.core.collection.CollUtil; +import org.dromara.common.core.exception.ServiceException; + /** * 物料BOM信息Service业务层处理 @@ -83,6 +91,13 @@ public class ProdMaterialBomServiceImpl implements IProdMaterialBomService { */ @Override public Boolean insertByBo(ProdMaterialBomBo bo) { + isTopFlag(bo); + ProdMaterialBomVo info = baseMapper.selectVoById(bo.getParentId()); + if (StringUtils.isNull(info)) { + bo.setAncestors(bo.getParentId().toString()); + } else { + bo.setAncestors(info.getAncestors() + "," + bo.getParentId()); + } ProdMaterialBom add = MapstructUtils.convert(bo, ProdMaterialBom.class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; @@ -100,6 +115,11 @@ public class ProdMaterialBomServiceImpl implements IProdMaterialBomService { */ @Override public Boolean updateByBo(ProdMaterialBomBo bo) { + isTopFlag(bo); + ProdMaterialBomVo info = baseMapper.selectVoById(bo.getParentId()); + if (StringUtils.isNotNull(info)) { + bo.setAncestors(info.getAncestors() + "," + bo.getParentId()); + } ProdMaterialBom update = MapstructUtils.convert(bo, ProdMaterialBom.class); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; @@ -126,4 +146,105 @@ public class ProdMaterialBomServiceImpl implements IProdMaterialBomService { } return baseMapper.deleteByIds(ids) > 0; } + + /** + * SET顶级标识 + * 判断是否顶级BOM + * + * @param mesMaterialBom + */ + private void isTopFlag(ProdMaterialBomBo mesMaterialBom) { + // 顶级标识1=是,0=否 + if (StringUtils.isNull(mesMaterialBom.getParentId()) || mesMaterialBom.getParentId() == 0L) { + mesMaterialBom.setTopFlag(1L); + } else { + mesMaterialBom.setTopFlag(0L); + } + } + + + + /** + * 根据结构BOM批量插入物料清单BOM。 + * @param boList 需要插入的物料清单BOM列表。 + * @return 如果所有节点都成功插入,返回true;否则抛出异常。 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean insertBatchByBoList(List boList) { + if (CollUtil.isEmpty(boList)) { + return false; + } + + try { + // 按层级分组(根据parentId分组) + Map> levelMap = new HashMap<>(); + // 1. 首先找出所有顶级节点 + List topNodes = boList.stream() + .filter(bo -> bo.getParentId() == null || bo.getParentId() == 0) + .collect(Collectors.toList()); + // 2. 其他节点按parentId分组 + Map> childrenMap = boList.stream() + .filter(bo -> bo.getParentId() != null && bo.getParentId() != 0) + .collect(Collectors.groupingBy(bo -> Math.abs(bo.getParentId()))); + // 存储临时ID到实际ID的映射 + Map idMapping = new HashMap<>(); + // 3. 优先处理顶级节点,设置基础数据并插入 + for (ProdMaterialBomBo topNode : topNodes) { + Long tempId = Math.abs(topNode.getMaterialBomId()); + topNode.setMaterialBomId(null); // 清除临时ID + topNode.setParentId(0L); // 确保顶级节点parentId为0 + topNode.setAncestors("0"); // 顶级节点的ancestors为"0" + topNode.setTopFlag(1L); // 设置顶级节点的topFlag为1 + // 插入顶级节点 + ProdMaterialBom add = MapstructUtils.convert(topNode, ProdMaterialBom.class); + if (baseMapper.insert(add) <= 0) { + throw new ServiceException("插入顶级节点失败"); + } + // 记录映射关系 + idMapping.put(tempId, add.getMaterialBomId()); + } + // 4. 处理子节点,直到所有节点都处理完 + while (!childrenMap.isEmpty()) { + // 找出当前可以处理的节点(父节点已经在idMapping中的节点) + List processableParentIds = new ArrayList<>(childrenMap.keySet()); + boolean processed = false;// 标记本轮是否有节点被处理 + for (Long parentTempId : processableParentIds) { + // 检查父节点是否已处理 + if (idMapping.containsKey(parentTempId)) { + List children = childrenMap.remove(parentTempId); + // 处理同一父节点的所有子节点 + for (ProdMaterialBomBo child : children) { + Long childTempId = Math.abs(child.getMaterialBomId()); + // 设置实际的父节点ID + child.setMaterialBomId(null);// 清除临时ID + child.setTopFlag(0L); // 设置非顶级节点的topFlag为0 + Long actualParentId = idMapping.get(parentTempId); + child.setParentId(actualParentId); + // 设置祖级列表 + ProdMaterialBom parent = baseMapper.selectById(actualParentId); + child.setAncestors(parent.getAncestors() + "," + actualParentId); + + // 插入子节点 + ProdMaterialBom add = MapstructUtils.convert(child, ProdMaterialBom.class); + if (baseMapper.insert(add) <= 0) { + throw new ServiceException("插入子节点失败"); + } + + // 记录映射关系 + idMapping.put(childTempId, add.getMaterialBomId()); + } + processed = true; + } + } + // 如果一轮循环没有处理任何节点,说明数据有问题 + if (!processed && !childrenMap.isEmpty()) { + throw new ServiceException("存在无法处理的节点,可能是父节点丢失"); + } + } + return true; + } catch (Exception e) { + throw new ServiceException("批量插入失败: " + e.getMessage()); + } + } } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdOrderInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdOrderInfoServiceImpl.java index ae7f285..4dcb0ef 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdOrderInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdOrderInfoServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.mes.service.impl; +import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -7,13 +8,14 @@ import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.mes.domain.*; +import org.dromara.mes.domain.vo.BaseMaterialInfoVo; +import org.dromara.mes.mapper.*; +import org.dromara.system.api.RemoteCodeRuleService; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.ProdOrderInfoBo; import org.dromara.mes.domain.vo.ProdOrderInfoVo; -import org.dromara.mes.domain.ProdOrderInfo; -import org.dromara.mes.mapper.ProdOrderInfoMapper; import org.dromara.mes.service.IProdOrderInfoService; import java.util.List; @@ -32,6 +34,17 @@ public class ProdOrderInfoServiceImpl implements IProdOrderInfoService { private final ProdOrderInfoMapper baseMapper; + private final ProdBaseProdLineInfoMapper prodBaseProdLineInfoMapper; + + private final ProdBaseRouteMapper prodBaseRouteMapper; + + private final ProdBaseProcessInfoMapper prodBaseProcessInfoMapper; + + private final BaseMaterialInfoMapper baseMaterialInfoMapper; + + @DubboReference + private final RemoteCodeRuleService remoteCodeRuleService; + /** * 查询生产订单信息 * @@ -40,7 +53,31 @@ public class ProdOrderInfoServiceImpl implements IProdOrderInfoService { */ @Override public ProdOrderInfoVo queryById(Long productOrderId){ - return baseMapper.selectVoById(productOrderId); + ProdOrderInfoVo prodOrderInfoVo = baseMapper.selectVoById(productOrderId); + //根据dispatchType查询对应的名称 + String dispatchType = prodOrderInfoVo.getDispatchType(); + switch (dispatchType) { + // 1:产线 2:工艺路线 3:工序 + case "1": + prodOrderInfoVo.setDispatchName(prodBaseProdLineInfoMapper.selectVoById(prodOrderInfoVo.getDispatchId()).getProdLineName()); + break; + case "2": + prodOrderInfoVo.setDispatchName(prodBaseRouteMapper.selectVoById(prodOrderInfoVo.getDispatchId()).getRouteName()); + break; + case "3": + prodOrderInfoVo.setDispatchName(prodBaseProcessInfoMapper.selectVoById(prodOrderInfoVo.getDispatchId()).getProcessName()); + break; + default: + break; + } + //根据materialId查询对应的名称和编码 + Long materialId = prodOrderInfoVo.getMaterialId(); + if (materialId != null) { + BaseMaterialInfoVo baseMaterialInfo = baseMaterialInfoMapper.selectVoById(materialId); + prodOrderInfoVo.setMaterialName(baseMaterialInfo.getMaterialName()); + prodOrderInfoVo.setMaterialCode(baseMaterialInfo.getMaterialCode()); + } + return prodOrderInfoVo; } /** @@ -53,7 +90,7 @@ public class ProdOrderInfoServiceImpl implements IProdOrderInfoService { @Override public TableDataInfo queryPageList(ProdOrderInfoBo bo, PageQuery pageQuery) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + Page result = baseMapper.selectProdOrderInfoList(pageQuery.build(), lqw); return TableDataInfo.build(result); } @@ -112,6 +149,8 @@ public class ProdOrderInfoServiceImpl implements IProdOrderInfoService { */ @Override public Boolean insertByBo(ProdOrderInfoBo bo) { + String orderCode = remoteCodeRuleService.selectCodeRuleCode("1"); + bo.setOrderCode(orderCode); ProdOrderInfo add = MapstructUtils.convert(bo, ProdOrderInfo.class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java index f14acd0..027574c 100644 --- a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdPlanInfoServiceImpl.java @@ -1,24 +1,31 @@ package org.dromara.mes.service.impl; +import org.dromara.common.constant.DatabaseConstants; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.DateUtils; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.uuid.Seq; +import org.dromara.common.mapper.DynamicBaseSqlMapper; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.mes.domain.vo.MesProductPlanEditVo; import org.springframework.stereotype.Service; import org.dromara.mes.domain.bo.ProdPlanInfoBo; import org.dromara.mes.domain.vo.ProdPlanInfoVo; import org.dromara.mes.domain.ProdPlanInfo; import org.dromara.mes.mapper.ProdPlanInfoMapper; import org.dromara.mes.service.IProdPlanInfoService; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; +import java.util.stream.Collectors; /** * 生产工单信息Service业务层处理 @@ -32,6 +39,8 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { private final ProdPlanInfoMapper baseMapper; + private final DynamicBaseSqlMapper dynamicBaseSqlMapper; + /** * 查询生产工单信息 * @@ -39,7 +48,7 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { * @return 生产工单信息 */ @Override - public ProdPlanInfoVo queryById(Long planId){ + public ProdPlanInfoVo queryById(Long planId) { return baseMapper.selectVoById(planId); } @@ -53,10 +62,18 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { @Override public TableDataInfo queryPageList(ProdPlanInfoBo bo, PageQuery pageQuery) { MPJLambdaWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + Long workshopId = bo.getWorkshopId(); + String tableName = null; + if (StringUtils.isNull(workshopId)){ + tableName = DatabaseConstants.TABLE_NAME_PROD_PLAN_INFO_PREFIX; + } else { + tableName = DatabaseConstants.TABLE_NAME_PROD_PLAN_INFO_PREFIX + "_" + workshopId; + } + Page result = baseMapper.selectProdPlanInfoList(pageQuery.build(), tableName, lqw); return TableDataInfo.build(result); } + /** * 查询符合条件的生产工单信息列表 * @@ -70,40 +87,41 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { } private MPJLambdaWrapper buildQueryWrapper(ProdPlanInfoBo bo) { + System.out.println("wo;" + bo.getWorkshopId()); Map params = bo.getParams(); MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdPlanInfo.class) - .selectAll(ProdPlanInfo.class) - .eq(bo.getPlanId() != null, ProdPlanInfo::getPlanId, bo.getPlanId()) - .eq(bo.getProductOrderId() != null, ProdPlanInfo::getProductOrderId, bo.getProductOrderId()) - .eq(bo.getSaleOrderId() != null, ProdPlanInfo::getSaleOrderId, bo.getSaleOrderId()) - .eq(StringUtils.isNotBlank(bo.getSaleorderCode()), ProdPlanInfo::getSaleorderCode, bo.getSaleorderCode()) - .eq(StringUtils.isNotBlank(bo.getPlanCode()), ProdPlanInfo::getPlanCode, bo.getPlanCode()) - .eq(StringUtils.isNotBlank(bo.getDispatchCode()), ProdPlanInfo::getDispatchCode, bo.getDispatchCode()) - .eq(bo.getMaterialId() != null, ProdPlanInfo::getMaterialId, bo.getMaterialId()) - .eq(bo.getMaterialBomId() != null, ProdPlanInfo::getMaterialBomId, bo.getMaterialBomId()) - .eq(bo.getProcessId() != null, ProdPlanInfo::getProcessId, bo.getProcessId()) - .eq(bo.getProcessOrder() != null, ProdPlanInfo::getProcessOrder, bo.getProcessOrder()) - .eq(bo.getLastProcessId() != null, ProdPlanInfo::getLastProcessId, bo.getLastProcessId()) - .eq(StringUtils.isNotBlank(bo.getFinalProcessFlag()), ProdPlanInfo::getFinalProcessFlag, bo.getFinalProcessFlag()) - .eq(StringUtils.isNotBlank(bo.getReleaseType()), ProdPlanInfo::getReleaseType, bo.getReleaseType()) - .eq(bo.getReleaseId() != null, ProdPlanInfo::getReleaseId, bo.getReleaseId()) - .eq(bo.getProductionTime() != null, ProdPlanInfo::getProductionTime, bo.getProductionTime()) - .eq(bo.getPlanAmount() != null, ProdPlanInfo::getPlanAmount, bo.getPlanAmount()) - .eq(bo.getDispatchAmount() != null, ProdPlanInfo::getDispatchAmount, bo.getDispatchAmount()) - .eq(bo.getCompleteAmount() != null, ProdPlanInfo::getCompleteAmount, bo.getCompleteAmount()) - .eq(bo.getPlanBeginTime() != null, ProdPlanInfo::getPlanBeginTime, bo.getPlanBeginTime()) - .eq(bo.getPlanEndTime() != null, ProdPlanInfo::getPlanEndTime, bo.getPlanEndTime()) - .eq(bo.getRealBeginTime() != null, ProdPlanInfo::getRealBeginTime, bo.getRealBeginTime()) - .eq(bo.getRealEndTime() != null, ProdPlanInfo::getRealEndTime, bo.getRealEndTime()) - .eq(StringUtils.isNotBlank(bo.getAttachId()), ProdPlanInfo::getAttachId, bo.getAttachId()) - .eq(StringUtils.isNotBlank(bo.getPlanStatus()), ProdPlanInfo::getPlanStatus, bo.getPlanStatus()) - .eq(StringUtils.isNotBlank(bo.getImportFlag()), ProdPlanInfo::getImportFlag, bo.getImportFlag()) - .eq(StringUtils.isNotBlank(bo.getFinishFlag()), ProdPlanInfo::getFinishFlag, bo.getFinishFlag()) - .eq(bo.getPriority() != null, ProdPlanInfo::getPriority, bo.getPriority()) - .eq(bo.getShiftId() != null, ProdPlanInfo::getShiftId, bo.getShiftId()) - .eq(bo.getClassTeamId() != null, ProdPlanInfo::getClassTeamId, bo.getClassTeamId()) - .eq(StringUtils.isNotBlank(bo.getModelCode()), ProdPlanInfo::getModelCode, bo.getModelCode()) - .orderByDesc(ProdPlanInfo::getCreateTime); + .selectAll(ProdPlanInfo.class) + .eq(bo.getPlanId() != null, ProdPlanInfo::getPlanId, bo.getPlanId()) + .eq(bo.getProductOrderId() != null, ProdPlanInfo::getProductOrderId, bo.getProductOrderId()) + .eq(bo.getSaleOrderId() != null, ProdPlanInfo::getSaleOrderId, bo.getSaleOrderId()) + .eq(StringUtils.isNotBlank(bo.getSaleorderCode()), ProdPlanInfo::getSaleorderCode, bo.getSaleorderCode()) + .eq(StringUtils.isNotBlank(bo.getPlanCode()), ProdPlanInfo::getPlanCode, bo.getPlanCode()) + .eq(StringUtils.isNotBlank(bo.getDispatchCode()), ProdPlanInfo::getDispatchCode, bo.getDispatchCode()) + .eq(bo.getMaterialId() != null, ProdPlanInfo::getMaterialId, bo.getMaterialId()) + .eq(bo.getMaterialBomId() != null, ProdPlanInfo::getMaterialBomId, bo.getMaterialBomId()) + .eq(bo.getProcessId() != null, ProdPlanInfo::getProcessId, bo.getProcessId()) + .eq(bo.getProcessOrder() != null, ProdPlanInfo::getProcessOrder, bo.getProcessOrder()) + .eq(bo.getLastProcessId() != null, ProdPlanInfo::getLastProcessId, bo.getLastProcessId()) + .eq(StringUtils.isNotBlank(bo.getFinalProcessFlag()), ProdPlanInfo::getFinalProcessFlag, bo.getFinalProcessFlag()) + .eq(StringUtils.isNotBlank(bo.getReleaseType()), ProdPlanInfo::getReleaseType, bo.getReleaseType()) + .eq(bo.getReleaseId() != null, ProdPlanInfo::getReleaseId, bo.getReleaseId()) + .eq(bo.getProductionTime() != null, ProdPlanInfo::getProductionTime, bo.getProductionTime()) + .eq(bo.getPlanAmount() != null, ProdPlanInfo::getPlanAmount, bo.getPlanAmount()) + .eq(bo.getDispatchAmount() != null, ProdPlanInfo::getDispatchAmount, bo.getDispatchAmount()) + .eq(bo.getCompleteAmount() != null, ProdPlanInfo::getCompleteAmount, bo.getCompleteAmount()) + .eq(bo.getPlanBeginTime() != null, ProdPlanInfo::getPlanBeginTime, bo.getPlanBeginTime()) + .eq(bo.getPlanEndTime() != null, ProdPlanInfo::getPlanEndTime, bo.getPlanEndTime()) + .eq(bo.getRealBeginTime() != null, ProdPlanInfo::getRealBeginTime, bo.getRealBeginTime()) + .eq(bo.getRealEndTime() != null, ProdPlanInfo::getRealEndTime, bo.getRealEndTime()) + .eq(StringUtils.isNotBlank(bo.getAttachId()), ProdPlanInfo::getAttachId, bo.getAttachId()) + .eq(StringUtils.isNotBlank(bo.getPlanStatus()), ProdPlanInfo::getPlanStatus, bo.getPlanStatus()) + .eq(StringUtils.isNotBlank(bo.getImportFlag()), ProdPlanInfo::getImportFlag, bo.getImportFlag()) + .eq(StringUtils.isNotBlank(bo.getFinishFlag()), ProdPlanInfo::getFinishFlag, bo.getFinishFlag()) + .eq(bo.getPriority() != null, ProdPlanInfo::getPriority, bo.getPriority()) + .eq(bo.getShiftId() != null, ProdPlanInfo::getShiftId, bo.getShiftId()) + .eq(bo.getClassTeamId() != null, ProdPlanInfo::getClassTeamId, bo.getClassTeamId()) + .eq(StringUtils.isNotBlank(bo.getModelCode()), ProdPlanInfo::getModelCode, bo.getModelCode()) + .orderByDesc(ProdPlanInfo::getCreateTime); return lqw; } @@ -115,12 +133,16 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { */ @Override public Boolean insertByBo(ProdPlanInfoBo bo) { + String planCode = Seq.getId(Seq.mesPlanCodeSeqType, Seq.mesPlanCodeCode); + bo.setPlanCode(planCode); ProdPlanInfo add = MapstructUtils.convert(bo, ProdPlanInfo.class); validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setPlanId(add.getPlanId()); - } + String tableName = DatabaseConstants.TABLE_NAME_PROD_PLAN_INFO_PREFIX + "_" + bo.getWorkshopId(); + boolean flag = dynamicBaseSqlMapper.dynamicInsert(tableName, DatabaseConstants.TABLE_NAME_PROD_PLAN_INFO_PREFIX, add) >0; +// boolean flag = baseMapper.insert(add) > 0; +// if (flag) { +// bo.setPlanId(add.getPlanId()); +// } return flag; } @@ -140,7 +162,7 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { /** * 保存前的数据校验 */ - private void validEntityBeforeSave(ProdPlanInfo entity){ + private void validEntityBeforeSave(ProdPlanInfo entity) { //TODO 做一些数据校验,如唯一约束 } @@ -153,9 +175,88 @@ public class ProdPlanInfoServiceImpl implements IProdPlanInfoService { */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; } + + /** + * 获取派工编号 + * + * @return + */ + @Override + public String getDispatchCode() { + return Seq.getId(Seq.mesPlanCodeSeqType, Seq.mesPlanCodeCode); + } + + /** + * 查询生产派工列表,join process + * + * @param bo 生产派工 + * @return 生产派工 + */ + @Override + public List selectProdPlanInfoJoinProcessList(ProdPlanInfoBo bo) { + return baseMapper.selectProdPlanInfoJoinProcessList(bo); + } + + + /** + * 生产工单新增生产派工List + * + * @param mesProductPlanEditVo 生产派工VO对象 + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int orderAddMesProductPlanList(MesProductPlanEditVo mesProductPlanEditVo) { + //要新增的派工数据列表 + List mesProductPlanList = mesProductPlanEditVo.getMesProductPlanList(); + if (ObjectUtils.isEmpty(mesProductPlanList)) { + throw new ServiceException("无有效的派工数据提交"); + }else { + for (ProdPlanInfoBo mesProductPlanBo : mesProductPlanList) { + //设置编号 + mesProductPlanBo.setProductOrderId(mesProductPlanEditVo.getProductOrderId()); + mesProductPlanBo.setPlanCode(Seq.getId(Seq.mesPlanCodeSeqType, Seq.mesPlanCodeCode)); + // 设置派工数量,从MesProductPlanEditVo获取,也可以考虑前端赋值 + mesProductPlanBo.setDispatchAmount(mesProductPlanEditVo.getDispatchAmount()); + } + } + + // 待删除的生产计划ID列表 + Long[] toDeletedPlanIds = mesProductPlanEditVo.getToDeletedPlanIds(); + Boolean isValid = false; + //是否删除成功标志 + Boolean deleteFlag = false; + if (!ObjectUtils.isEmpty(toDeletedPlanIds)) { + //TODO 待删除的生产计划ID列表是否有效,加一些验证逻辑 + isValid = true; + deleteFlag = deleteWithValidByIds(Arrays.asList(toDeletedPlanIds), isValid); + if (!deleteFlag) { + throw new ServiceException("待删除的生产工单不存在"); + } + } + + int successCount = 0; + for (ProdPlanInfoBo productPlanBo : mesProductPlanList) { + /*TODO:后期需调用insertByBo,会分表插入*/ + ProdPlanInfo add = MapstructUtils.convert(productPlanBo, ProdPlanInfo.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + productPlanBo.setPlanId(add.getPlanId()); + successCount++; + } + } + if (successCount == 0 || !deleteFlag) { + throw new ServiceException("派工数据保存失败"); + } + + return successCount; + } + + } diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyInfoServiceImpl.java new file mode 100644 index 0000000..c9064b5 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyInfoServiceImpl.java @@ -0,0 +1,178 @@ +package org.dromara.mes.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.mes.domain.BaseMaterialInfo; +import org.dromara.mes.domain.ProdBaseProcessInfo; +import org.dromara.mes.domain.ProdTechnologyStepInfo; +import org.dromara.mes.domain.bo.ProdTechnologyStepInfoBo; +import org.dromara.mes.mapper.ProdTechnologyStepInfoMapper; +import org.springframework.stereotype.Service; +import org.dromara.mes.domain.bo.ProdTechnologyInfoBo; +import org.dromara.mes.domain.vo.ProdTechnologyInfoVo; +import org.dromara.mes.domain.ProdTechnologyInfo; +import org.dromara.mes.mapper.ProdTechnologyInfoMapper; +import org.dromara.mes.service.IProdTechnologyInfoService; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 工序工艺信息Service业务层处理 + * + * @author Yinq + * @date 2025-01-21 + */ +@RequiredArgsConstructor +@Service +public class ProdTechnologyInfoServiceImpl implements IProdTechnologyInfoService { + + private final ProdTechnologyInfoMapper baseMapper; + + private final ProdTechnologyStepInfoMapper prodTechnologyStepInfoMapper; + + /** + * 查询工序工艺信息 + * + * @param technologyId 主键 + * @return 工序工艺信息 + */ + @Override + public ProdTechnologyInfoVo queryById(Long technologyId) { + ProdTechnologyInfoBo bo = new ProdTechnologyInfoBo(); + bo.setTechnologyId(technologyId); + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + List voList = baseMapper.selectVoList(lqw); + ProdTechnologyInfoVo prodTechnologyInfoVo = voList.get(0); + //工艺步序信息 + MPJLambdaWrapper lqwStep = JoinWrappers.lambda(ProdTechnologyStepInfo.class) + .selectAll(ProdTechnologyStepInfo.class) + .eq(bo.getTechnologyId() != null, ProdTechnologyStepInfo::getTechnologyId, bo.getTechnologyId()) + .orderByAsc(ProdTechnologyStepInfo::getCreateTime); + List prodTechnologyStepInfoList = prodTechnologyStepInfoMapper.selectList(lqwStep); + prodTechnologyInfoVo.setProdTechnologyStepInfoList(prodTechnologyStepInfoList); + return prodTechnologyInfoVo; + } + + /** + * 分页查询工序工艺信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 工序工艺信息分页列表 + */ + @Override + public TableDataInfo queryPageList(ProdTechnologyInfoBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的工序工艺信息列表 + * + * @param bo 查询条件 + * @return 工序工艺信息列表 + */ + @Override + public List queryList(ProdTechnologyInfoBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ProdTechnologyInfoBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdTechnologyInfo.class) + .selectAll(ProdTechnologyInfo.class) + .select(ProdBaseProcessInfo::getProcessName) + .select(BaseMaterialInfo::getMaterialName) + .leftJoin(ProdBaseProcessInfo.class, ProdBaseProcessInfo::getProcessId, ProdTechnologyInfo::getProcessId) + .leftJoin(BaseMaterialInfo.class, BaseMaterialInfo::getMaterialId, ProdTechnologyInfo::getMaterialId) + .eq(bo.getTechnologyId() != null, ProdTechnologyInfo::getTechnologyId, bo.getTechnologyId()) + .eq(bo.getProcessId() != null, ProdTechnologyInfo::getProcessId, bo.getProcessId()) + .eq(bo.getMaterialId() != null, ProdTechnologyInfo::getMaterialId, bo.getMaterialId()) + .eq(StringUtils.isNotBlank(bo.getMachineType()), ProdTechnologyInfo::getMachineType, bo.getMachineType()) + .eq(StringUtils.isNotBlank(bo.getTechnologyType()), ProdTechnologyInfo::getTechnologyType, bo.getTechnologyType()) + .eq(StringUtils.isNotBlank(bo.getTechnologyVersion()), ProdTechnologyInfo::getTechnologyVersion, bo.getTechnologyVersion()) + .eq(bo.getStandardTime() != null, ProdTechnologyInfo::getStandardTime, bo.getStandardTime()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), ProdTechnologyInfo::getActiveFlag, bo.getActiveFlag()) + .orderByAsc(ProdTechnologyInfo::getCreateTime); + return lqw; + } + + /** + * 新增工序工艺信息 + * + * @param bo 工序工艺信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ProdTechnologyInfoBo bo) { + ProdTechnologyInfo add = MapstructUtils.convert(bo, ProdTechnologyInfo.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setTechnologyId(add.getTechnologyId()); + } + return flag; + } + + /** + * 修改工序工艺信息 + * + * @param bo 工序工艺信息 + * @return 是否修改成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean updateByBo(ProdTechnologyInfoBo bo) { + ProdTechnologyInfo update = MapstructUtils.convert(bo, ProdTechnologyInfo.class); + validEntityBeforeSave(update); + + List technologyStepInfoList = bo.getProdTechnologyStepInfoList(); + + if (technologyStepInfoList.size() > 0){ + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(StringUtils.isNotNull(bo.getTechnologyId()), ProdTechnologyStepInfo::getTechnologyId, bo.getTechnologyId()); + prodTechnologyStepInfoMapper.delete(lqw); + for (ProdTechnologyStepInfo stepInfo : technologyStepInfoList) { + stepInfo.setStepId(null); + prodTechnologyStepInfoMapper.insert(stepInfo); + } + } + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ProdTechnologyInfo entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除工序工艺信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyStepInfoServiceImpl.java b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyStepInfoServiceImpl.java new file mode 100644 index 0000000..803c633 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/java/org/dromara/mes/service/impl/ProdTechnologyStepInfoServiceImpl.java @@ -0,0 +1,139 @@ +package org.dromara.mes.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.mes.domain.bo.ProdTechnologyStepInfoBo; +import org.dromara.mes.domain.vo.ProdTechnologyStepInfoVo; +import org.dromara.mes.domain.ProdTechnologyStepInfo; +import org.dromara.mes.mapper.ProdTechnologyStepInfoMapper; +import org.dromara.mes.service.IProdTechnologyStepInfoService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 工艺步序信息Service业务层处理 + * + * @author Yinq + * @date 2025-01-21 + */ +@RequiredArgsConstructor +@Service +public class ProdTechnologyStepInfoServiceImpl implements IProdTechnologyStepInfoService { + + private final ProdTechnologyStepInfoMapper baseMapper; + + /** + * 查询工艺步序信息 + * + * @param stepId 主键 + * @return 工艺步序信息 + */ + @Override + public ProdTechnologyStepInfoVo queryById(Long stepId){ + return baseMapper.selectVoById(stepId); + } + + /** + * 分页查询工艺步序信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 工艺步序信息分页列表 + */ + @Override + public TableDataInfo queryPageList(ProdTechnologyStepInfoBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的工艺步序信息列表 + * + * @param bo 查询条件 + * @return 工艺步序信息列表 + */ + @Override + public List queryList(ProdTechnologyStepInfoBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(ProdTechnologyStepInfoBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(ProdTechnologyStepInfo.class) + .selectAll(ProdTechnologyStepInfo.class) + .eq(bo.getStepId() != null, ProdTechnologyStepInfo::getStepId, bo.getStepId()) + .eq(bo.getTechnologyId() != null, ProdTechnologyStepInfo::getTechnologyId, bo.getTechnologyId()) + .eq(bo.getStepCode() != null, ProdTechnologyStepInfo::getStepCode, bo.getStepCode()) + .like(StringUtils.isNotBlank(bo.getStepName()), ProdTechnologyStepInfo::getStepName, bo.getStepName()) + .eq(bo.getStepTime() != null, ProdTechnologyStepInfo::getStepTime, bo.getStepTime()) + .eq(StringUtils.isNotBlank(bo.getStepParameter()), ProdTechnologyStepInfo::getStepParameter, bo.getStepParameter()) + .eq(StringUtils.isNotBlank(bo.getValueState()), ProdTechnologyStepInfo::getValueState, bo.getValueState()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), ProdTechnologyStepInfo::getActiveFlag, bo.getActiveFlag()) + .orderByDesc(ProdTechnologyStepInfo::getStepCode); + return lqw; + } + + /** + * 新增工艺步序信息 + * + * @param bo 工艺步序信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(ProdTechnologyStepInfoBo bo) { + ProdTechnologyStepInfo add = MapstructUtils.convert(bo, ProdTechnologyStepInfo.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setStepId(add.getStepId()); + } + return flag; + } + + /** + * 修改工艺步序信息 + * + * @param bo 工艺步序信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(ProdTechnologyStepInfoBo bo) { + ProdTechnologyStepInfo update = MapstructUtils.convert(bo, ProdTechnologyStepInfo.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(ProdTechnologyStepInfo entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除工艺步序信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/banner.txt b/ruoyi-modules/hwmom-mes/src/main/resources/banner.txt index c86da88..26a8803 100644 --- a/ruoyi-modules/hwmom-mes/src/main/resources/banner.txt +++ b/ruoyi-modules/hwmom-mes/src/main/resources/banner.txt @@ -1,10 +1,7 @@ Spring Boot Version: ${spring-boot.version} Spring Application Name: ${spring.application.name} - _ _ - (_) | | - _ __ _ _ ___ _ _ _ ______ ___ _ _ ___ | |_ ___ _ __ ___ -| '__|| | | | / _ \ | | | || ||______|/ __|| | | |/ __|| __| / _ \| '_ ` _ \ -| | | |_| || (_) || |_| || | \__ \| |_| |\__ \| |_ | __/| | | | | | -|_| \__,_| \___/ \__, ||_| |___/ \__, ||___/ \__| \___||_| |_| |_| - __/ | __/ | - |___/ |___/ + __ + / /_ _ ______ ___ ____ ____ ___ ____ ___ ___ _____ + / __ \ | /| / / __ `__ \/ __ \/ __ `__ \______/ __ `__ \/ _ \/ ___/ + / / / / |/ |/ / / / / / / /_/ / / / / / /_____/ / / / / / __(__ ) +/_/ /_/|__/|__/_/ /_/ /_/\____/_/ /_/ /_/ /_/ /_/ /_/\___/____/ diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/BaseStructureBomMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/BaseStructureBomMapper.xml new file mode 100644 index 0000000..a8c008f --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/BaseStructureBomMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseMachineInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseMachineInfoMapper.xml new file mode 100644 index 0000000..df7a3b6 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseMachineInfoMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessInfoMapper.xml index 18d5793..4a07d0f 100644 --- a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessInfoMapper.xml +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessInfoMapper.xml @@ -4,4 +4,231 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select process_id, + process_code, + process_name, + process_type, + process_floor, + production_time, + active_flag, + remark, + create_by, + create_time, + update_by, + update_time, + tenant_id + from prod_base_process_info + + + + + + + + + + insert into prod_base_process_info + + process_code, + process_name, + process_type, + process_floor, + production_time, + active_flag, + remark, + create_by, + create_time, + update_by, + update_time, + tenant_id, + + + #{processCode}, + #{processName}, + #{processType}, + #{processFloor}, + #{productionTime}, + #{activeFlag}, + #{remark}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{tenantId}, + + + + + update prod_base_process_info + + process_code = #{processCode}, + process_name = #{processName}, + process_type = #{processType}, + process_floor = #{processFloor}, + production_time = #{productionTime}, + active_flag = #{activeFlag}, + remark = #{remark}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + tenant_id = #{tenantId}, + + where process_id = #{processId} + + + + delete + from prod_base_process_info + where process_id = #{processId} + + + + delete from prod_base_process_info where process_id in + + #{processId} + + + + + delete from prod_base_process_prod_line where process_id in + + #{processId} + + + + + delete + from prod_base_process_prod_line + where process_id = #{processId} + + + + insert into prod_base_process_prod_line( process_id, prod_line_id) values + + ( #{item.processId}, #{item.prodlineId}) + + + + + delete from prod_base_process_user where process_id in + + #{processId} + + + + + delete from prod_base_process_user where process_id = #{processId} + + + + insert into prod_base_process_user( process_id, user_id, user_name, create_by, create_time,tenant_id) values + + ( #{item.processId}, #{item.userId}, #{item.userName}, #{item.createBy}, #{item.createTime}, #{item.tenantId}) + + diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessProdLineMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessProdLineMapper.xml new file mode 100644 index 0000000..8ec747e --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessProdLineMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessUserMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessUserMapper.xml new file mode 100644 index 0000000..f5dfb37 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseProcessUserMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseRouteMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseRouteMapper.xml index bbcd36e..8f2d2cf 100644 --- a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseRouteMapper.xml +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdBaseRouteMapper.xml @@ -54,7 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from prod_base_route a left join prod_base_route_process b on b.route_id = a.route_id - left join mes_base_process_info p on p.process_id = b.process_id + left join prod_base_process_info p on p.process_id = b.process_id +/* select mbrp.route_process_id, mbrp.route_id, mbrp.process_id, mbrp.process_order, + mbpi.process_name,mbpi.process_type,mbpi.production_time,mbpi.final_process_flag + from prod_base_route_process mbrp + left join prod_base_process_info mbpi on mbrp.process_id=mbpi.process_id*/ + select mbrp.route_process_id, mbrp.route_id, mbrp.process_id, mbrp.process_order, + mbpi.process_name,mbpi.process_type,mbpi.production_time + from prod_base_route_process mbrp + left join prod_base_process_info mbpi on mbrp.process_id=mbpi.process_id + + + and mbrp.route_id = #{routeId} + and mbrp.process_id = #{processId} + and mbrp.process_order = #{processOrder} + and rmbrp.remark = #{remark} + + diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdOrderInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdOrderInfoMapper.xml index 48b3fda..ef86018 100644 --- a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdOrderInfoMapper.xml +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdOrderInfoMapper.xml @@ -1,7 +1,30 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml index 1be78ee..5c57c3a 100644 --- a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdPlanInfoMapper.xml @@ -4,4 +4,167 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdTechnologyInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdTechnologyInfoMapper.xml new file mode 100644 index 0000000..16571bb --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdTechnologyInfoMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdTechnologyStepInfoMapper.xml b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdTechnologyStepInfoMapper.xml new file mode 100644 index 0000000..6f25a56 --- /dev/null +++ b/ruoyi-modules/hwmom-mes/src/main/resources/mapper/mes/ProdTechnologyStepInfoMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/pom.xml b/ruoyi-modules/hwmom-wms/pom.xml index 402d431..bd7e65d 100644 --- a/ruoyi-modules/hwmom-wms/pom.xml +++ b/ruoyi-modules/hwmom-wms/pom.xml @@ -111,7 +111,7 @@ com.microsoft.sqlserver mssql-jdbc - + diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderController.java new file mode 100644 index 0000000..135ed10 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderController.java @@ -0,0 +1,106 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsAllocateOrderBo; +import org.dromara.wms.domain.vo.WmsAllocateOrderVo; +import org.dromara.wms.service.IWmsAllocateOrderService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 调拨工单 + * 前端访问路由地址为:/system/allocateOrder + * + * @author LionLi + * @date 2025-01-09 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/allocateOrder") +public class WmsAllocateOrderController extends BaseController { + + private final IWmsAllocateOrderService wmsAllocateOrderService; + + /** + * 查询调拨工单列表 + */ + @SaCheckPermission("system:allocateOrder:list") + @GetMapping("/list") + public TableDataInfo list(WmsAllocateOrderBo bo, PageQuery pageQuery) { + return wmsAllocateOrderService.queryPageList(bo, pageQuery); + } + + /** + * 导出调拨工单列表 + */ + @SaCheckPermission("system:allocateOrder:export") + @Log(title = "调拨工单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsAllocateOrderBo bo, HttpServletResponse response) { + List list = wmsAllocateOrderService.queryList(bo); + ExcelUtil.exportExcel(list, "调拨工单", WmsAllocateOrderVo.class, response); + } + + /** + * 获取调拨工单详细信息 + * + * @param aoId 主键 + */ + @SaCheckPermission("system:allocateOrder:query") + @GetMapping("/{aoId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long aoId) { + return R.ok(wmsAllocateOrderService.queryById(aoId)); + } + + /** + * 新增调拨工单 + */ + @SaCheckPermission("system:allocateOrder:add") + @Log(title = "调拨工单", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@RequestBody WmsAllocateOrderBo bo) { + return R.ok(wmsAllocateOrderService.insertByBo(bo)); + } + + /** + * 修改调拨工单 + */ + @SaCheckPermission("system:allocateOrder:edit") + @Log(title = "调拨工单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsAllocateOrderBo bo) { + return toAjax(wmsAllocateOrderService.updateByBo(bo)); + } + + /** + * 删除调拨工单 + * + * @param aoIds 主键串 + */ + @SaCheckPermission("system:allocateOrder:remove") + @Log(title = "调拨工单", businessType = BusinessType.DELETE) + @DeleteMapping("/{aoIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] aoIds) { + return toAjax(wmsAllocateOrderService.deleteWithValidByIds(List.of(aoIds), true)); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java new file mode 100644 index 0000000..87d909e --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsAllocateOrderDetailController.java @@ -0,0 +1,127 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsAllocateOrderDetailBo; +import org.dromara.wms.domain.vo.WmsAllocateOrderDetailVo; +import org.dromara.wms.service.IWmsAllocateOrderDetailService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 调拨子 + * 前端访问路由地址为:/system/allocateOrderDetail + * + * @author LionLi + * @date 2025-01-09 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/allocateOrderDetail") +public class WmsAllocateOrderDetailController extends BaseController { + + private final IWmsAllocateOrderDetailService wmsAllocateOrderDetailService; + + /** + * 查询调拨子列表 + */ + @SaCheckPermission("system:allocateOrderDetail:list") + @GetMapping("/list") + public TableDataInfo list(WmsAllocateOrderDetailBo bo, PageQuery pageQuery) { + return wmsAllocateOrderDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出调拨子列表 + */ + @SaCheckPermission("system:allocateOrderDetail:export") + @Log(title = "调拨子", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsAllocateOrderDetailBo bo, HttpServletResponse response) { + List list = wmsAllocateOrderDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "调拨子", WmsAllocateOrderDetailVo.class, response); + } + + /** + * 获取调拨子详细信息 + * + * @param aoDId 主键 + */ + @SaCheckPermission("system:allocateOrderDetail:query") + @GetMapping("/{aoDId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long aoDId) { + return R.ok(wmsAllocateOrderDetailService.queryById(aoDId)); + } + + /** + * 新增调拨子 + */ + @SaCheckPermission("system:allocateOrderDetail:add") + @Log(title = "调拨子", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add( @RequestBody List bo) { + return toAjax(wmsAllocateOrderDetailService.insertByBo(bo)); + } + + /** + * 修改调拨子 + */ + @SaCheckPermission("system:allocateOrderDetail:edit") + @Log(title = "调拨子", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsAllocateOrderDetailBo bo) { + return toAjax(wmsAllocateOrderDetailService.updateByBo(bo)); + } + + /** + * 删除调拨子 + * + * @param aoDIds 主键串 + */ + @SaCheckPermission("system:allocateOrderDetail:remove") + @Log(title = "调拨子", businessType = BusinessType.DELETE) + @DeleteMapping("/{aoDIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] aoDIds) { + return toAjax(wmsAllocateOrderDetailService.deleteWithValidByIds(List.of(aoDIds), true)); + } + /** + * 根据主键删除调拨子 + * + * @param aoDId 主键串 + */ + @SaCheckPermission("system:allocateOrderDetail:remove") + @Log(title = "调拨子", businessType = BusinessType.DELETE) + @DeleteMapping("removeDetail/{aoDId}") + public R removeDetail( + @PathVariable Long aoDId) { + return toAjax(wmsAllocateOrderDetailService.deleteById(aoDId)); + } + /** + * 根据调拨单主键查询调拨单明细 + * + * @param aoDId 主键串 + */ + @GetMapping("selectAllocateDetails") + public R> selectAllocateDetails(Long aoDId){ + return R.ok(wmsAllocateOrderDetailService.selectAllocateDetails()); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsBaseLocationController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsBaseLocationController.java index 62412e4..148e455 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsBaseLocationController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsBaseLocationController.java @@ -114,4 +114,10 @@ public class WmsBaseLocationController extends BaseController { List list = wmsBaseLocationService.queryList(bo); return R.ok(list); } + + @GetMapping("getWmsBaseLocationVoList") + public R> getWmsBaseLocationVoList(WmsBaseLocationBo bo) { + List list = wmsBaseLocationService.queryVoList(bo); + return R.ok(list); + } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsConfigurationController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsConfigurationController.java index e273d94..b0976fd 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsConfigurationController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsConfigurationController.java @@ -76,7 +76,7 @@ public class WmsConfigurationController extends BaseController { @Log(title = "仓库模块配置", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody WmsConfigurationBo bo) { + public R add(@RequestBody WmsConfigurationBo bo) { return toAjax(wmsConfigurationService.insertByBo(bo)); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsHppInStockDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsHppInStockDetailController.java new file mode 100644 index 0000000..0be068e --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsHppInStockDetailController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsHppInStockDetailBo; +import org.dromara.wms.domain.vo.WmsHppInStockDetailVo; +import org.dromara.wms.service.IWmsHppInStockDetailService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 半制品入库 + * 前端访问路由地址为:/system/hppInStockDetail + * + * @author LionLi + * @date 2025-01-14 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/hppInStockDetail") +public class WmsHppInStockDetailController extends BaseController { + + private final IWmsHppInStockDetailService wmsHppInStockDetailService; + + /** + * 查询半制品入库列表 + */ + @SaCheckPermission("system:hppInStockDetail:list") + @GetMapping("/list") + public TableDataInfo list(WmsHppInStockDetailBo bo, PageQuery pageQuery) { + return wmsHppInStockDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出半制品入库列表 + */ + @SaCheckPermission("system:hppInStockDetail:export") + @Log(title = "半制品入库", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsHppInStockDetailBo bo, HttpServletResponse response) { + List list = wmsHppInStockDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "半制品入库", WmsHppInStockDetailVo.class, response); + } + + /** + * 获取半制品入库详细信息 + * + * @param objId 主键 + */ + @SaCheckPermission("system:hppInStockDetail:query") + @GetMapping("/{objId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long objId) { + return R.ok(wmsHppInStockDetailService.queryById(objId)); + } + + /** + * 新增半制品入库 + */ + @SaCheckPermission("system:hppInStockDetail:add") + @Log(title = "半制品入库", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@RequestBody WmsHppInStockDetailBo bo) { + return toAjax(wmsHppInStockDetailService.insertByBo(bo)); + } + + /** + * 修改半制品入库 + */ + @SaCheckPermission("system:hppInStockDetail:edit") + @Log(title = "半制品入库", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@RequestBody WmsHppInStockDetailBo bo) { + return toAjax(wmsHppInStockDetailService.updateByBo(bo)); + } + + /** + * 删除半制品入库 + * + * @param objIds 主键串 + */ + @SaCheckPermission("system:hppInStockDetail:remove") + @Log(title = "半制品入库", businessType = BusinessType.DELETE) + @DeleteMapping("/{objIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] objIds) { + return toAjax(wmsHppInStockDetailService.deleteWithValidByIds(List.of(objIds), true)); + } + + + /** + * 下拉框查询半制品入库列表 + */ + + @GetMapping("getWmsHppInStockDetailList") + public R> getWmsHppInStockDetaillist(WmsHppInStockDetailBo bo) { + List list = wmsHppInStockDetailService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsHppOutStockDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsHppOutStockDetailController.java new file mode 100644 index 0000000..1b51f60 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsHppOutStockDetailController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsHppOutStockDetailBo; +import org.dromara.wms.domain.vo.WmsHppOutStockDetailVo; +import org.dromara.wms.service.IWmsHppOutStockDetailService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 半成品出库 + * 前端访问路由地址为:/system/hppOutStockDetail + * + * @author LionLi + * @date 2025-01-14 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/hppOutStockDetail") +public class WmsHppOutStockDetailController extends BaseController { + + private final IWmsHppOutStockDetailService wmsHppOutStockDetailService; + + /** + * 查询半成品出库列表 + */ + @SaCheckPermission("system:hppOutStockDetail:list") + @GetMapping("/list") + public TableDataInfo list(WmsHppOutStockDetailBo bo, PageQuery pageQuery) { + return wmsHppOutStockDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出半成品出库列表 + */ + @SaCheckPermission("system:hppOutStockDetail:export") + @Log(title = "半成品出库", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsHppOutStockDetailBo bo, HttpServletResponse response) { + List list = wmsHppOutStockDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "半成品出库", WmsHppOutStockDetailVo.class, response); + } + + /** + * 获取半成品出库详细信息 + * + * @param objId 主键 + */ + @SaCheckPermission("system:hppOutStockDetail:query") + @GetMapping("/{objId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long objId) { + return R.ok(wmsHppOutStockDetailService.queryById(objId)); + } + + /** + * 新增半成品出库 + */ + @SaCheckPermission("system:hppOutStockDetail:add") + @Log(title = "半成品出库", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@RequestBody WmsHppOutStockDetailBo bo) { + return toAjax(wmsHppOutStockDetailService.insertByBo(bo)); + } + + /** + * 修改半成品出库 + */ + @SaCheckPermission("system:hppOutStockDetail:edit") + @Log(title = "半成品出库", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@RequestBody WmsHppOutStockDetailBo bo) { + return toAjax(wmsHppOutStockDetailService.updateByBo(bo)); + } + + /** + * 删除半成品出库 + * + * @param objIds 主键串 + */ + @SaCheckPermission("system:hppOutStockDetail:remove") + @Log(title = "半成品出库", businessType = BusinessType.DELETE) + @DeleteMapping("/{objIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] objIds) { + return toAjax(wmsHppOutStockDetailService.deleteWithValidByIds(List.of(objIds), true)); + } + + + /** + * 下拉框查询半成品出库列表 + */ + + @GetMapping("getWmsHppOutStockDetailList") + public R> getWmsHppOutStockDetaillist(WmsHppOutStockDetailBo bo) { + List list = wmsHppOutStockDetailService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsHppStorageDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsHppStorageDetailController.java new file mode 100644 index 0000000..20dd91e --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsHppStorageDetailController.java @@ -0,0 +1,116 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsHppStorageDetailBo; +import org.dromara.wms.domain.vo.WmsHppStorageDetailVo; +import org.dromara.wms.service.IWmsHppStorageDetailService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 半成品库存 + * 前端访问路由地址为:/system/hppStorageDetail + * + * @author LionLi + * @date 2025-01-14 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/hppStorageDetail") +public class WmsHppStorageDetailController extends BaseController { + + private final IWmsHppStorageDetailService wmsHppStorageDetailService; + + /** + * 查询半成品库存列表 + */ + @SaCheckPermission("system:hppStorageDetail:list") + @GetMapping("/list") + public TableDataInfo list(WmsHppStorageDetailBo bo, PageQuery pageQuery) { + return wmsHppStorageDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出半成品库存列表 + */ + @SaCheckPermission("system:hppStorageDetail:export") + @Log(title = "半成品库存", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsHppStorageDetailBo bo, HttpServletResponse response) { + List list = wmsHppStorageDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "半成品库存", WmsHppStorageDetailVo.class, response); + } + + /** + * 获取半成品库存详细信息 + * + * @param objId 主键 + */ + @SaCheckPermission("system:hppStorageDetail:query") + @GetMapping("/{objId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long objId) { + return R.ok(wmsHppStorageDetailService.queryById(objId)); + } + + /** + * 新增半成品库存 + */ + @SaCheckPermission("system:hppStorageDetail:add") + @Log(title = "半成品库存", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@RequestBody WmsHppStorageDetailBo bo) { + return toAjax(wmsHppStorageDetailService.insertByBo(bo)); + } + + /** + * 修改半成品库存 + */ + @SaCheckPermission("system:hppStorageDetail:edit") + @Log(title = "半成品库存", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@RequestBody WmsHppStorageDetailBo bo) { + return toAjax(wmsHppStorageDetailService.updateByBo(bo)); + } + + /** + * 删除半成品库存 + * + * @param objIds 主键串 + */ + @SaCheckPermission("system:hppStorageDetail:remove") + @Log(title = "半成品库存", businessType = BusinessType.DELETE) + @DeleteMapping("/{objIds}") + public R remove(@PathVariable Long[] objIds) { + return toAjax(wmsHppStorageDetailService.deleteWithValidByIds(List.of(objIds), true)); + } + + + /** + * 下拉框查询半成品库存列表 + */ + + @GetMapping("getWmsHppStorageDetailList") + public R> getWmsHppStorageDetaillist(WmsHppStorageDetailBo bo) { + List list = wmsHppStorageDetailService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsHppStoreController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsHppStoreController.java new file mode 100644 index 0000000..4215e29 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsHppStoreController.java @@ -0,0 +1,115 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsHppStoreBo; +import org.dromara.wms.domain.vo.WmsHppStoreVo; +import org.dromara.wms.service.IWmsHppStoreService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 【请填写功能名称】 + * 前端访问路由地址为:/system/hppStore + * + * @author LionLi + * @date 2025-01-14 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/hppStore") +public class WmsHppStoreController extends BaseController { + + private final IWmsHppStoreService wmsHppStoreService; + + /** + * 查询【请填写功能名称】列表 + */ + @SaCheckPermission("system:hppStore:list") + @GetMapping("/list") + public TableDataInfo list(WmsHppStoreBo bo, PageQuery pageQuery) { + return wmsHppStoreService.queryPageList(bo, pageQuery); + } + + /** + * 导出【请填写功能名称】列表 + */ + @SaCheckPermission("system:hppStore:export") + @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsHppStoreBo bo, HttpServletResponse response) { + List list = wmsHppStoreService.queryList(bo); + ExcelUtil.exportExcel(list, "【请填写功能名称】", WmsHppStoreVo.class, response); + } + + /** + * 获取【请填写功能名称】详细信息 + * + * @param + */ + @SaCheckPermission("system:hppStore:query") + @GetMapping("/{objId}") + public R getInfo(@PathVariable Long objId) { + return R.ok(wmsHppStoreService.queryById(objId)); + } + + /** + * 新增【请填写功能名称】 + */ + @SaCheckPermission("system:hppStore:add") + @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@RequestBody WmsHppStoreBo bo) { + return toAjax(wmsHppStoreService.insertByBo(bo)); + } + + /** + * 修改【请填写功能名称】 + */ + @SaCheckPermission("system:hppStore:edit") + @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@RequestBody WmsHppStoreBo bo) { + return toAjax(wmsHppStoreService.updateByBo(bo)); + } + + /** + * 删除【请填写功能名称】 + * + * @param + */ + @SaCheckPermission("system:hppStore:remove") + @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE) + @DeleteMapping("/{objId}") + public R remove(@PathVariable Long[] objId) { + return toAjax(wmsHppStoreService.deleteWithValidByIds(List.of(objId), true)); + } + + + /** + * 下拉框查询【请填写功能名称】列表 + */ + + @GetMapping("getWmsHppStoreList") + public R> getWmsHppStorelist(WmsHppStoreBo bo) { + List list = wmsHppStoreService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsHppStorePlaceController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsHppStorePlaceController.java new file mode 100644 index 0000000..8d6f3b8 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsHppStorePlaceController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsHppStorePlaceBo; +import org.dromara.wms.domain.vo.WmsHppStorePlaceVo; +import org.dromara.wms.service.IWmsHppStorePlaceService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 半成品库位 + * 前端访问路由地址为:/system/hppStorePlace + * + * @author LionLi + * @date 2025-01-14 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/hppStorePlace") +public class WmsHppStorePlaceController extends BaseController { + + private final IWmsHppStorePlaceService wmsHppStorePlaceService; + + /** + * 查询半成品库位列表 + */ + @SaCheckPermission("system:hppStorePlace:list") + @GetMapping("/list") + public TableDataInfo list(WmsHppStorePlaceBo bo, PageQuery pageQuery) { + return wmsHppStorePlaceService.queryPageList(bo, pageQuery); + } + + /** + * 导出半成品库位列表 + */ + @SaCheckPermission("system:hppStorePlace:export") + @Log(title = "半成品库位", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsHppStorePlaceBo bo, HttpServletResponse response) { + List list = wmsHppStorePlaceService.queryList(bo); + ExcelUtil.exportExcel(list, "半成品库位", WmsHppStorePlaceVo.class, response); + } + + /** + * 获取半成品库位详细信息 + * + * @param objId 主键 + */ + @SaCheckPermission("system:hppStorePlace:query") + @GetMapping("/{objId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long objId) { + return R.ok(wmsHppStorePlaceService.queryById(objId)); + } + + /** + * 新增半成品库位 + */ + @SaCheckPermission("system:hppStorePlace:add") + @Log(title = "半成品库位", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@RequestBody WmsHppStorePlaceBo bo) { + return toAjax(wmsHppStorePlaceService.insertByBo(bo)); + } + + /** + * 修改半成品库位 + */ + @SaCheckPermission("system:hppStorePlace:edit") + @Log(title = "半成品库位", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@RequestBody WmsHppStorePlaceBo bo) { + return toAjax(wmsHppStorePlaceService.updateByBo(bo)); + } + + /** + * 删除半成品库位 + * + * @param objIds 主键串 + */ + @SaCheckPermission("system:hppStorePlace:remove") + @Log(title = "半成品库位", businessType = BusinessType.DELETE) + @DeleteMapping("/{objIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] objIds) { + return toAjax(wmsHppStorePlaceService.deleteWithValidByIds(List.of(objIds), true)); + } + + + /** + * 下拉框查询半成品库位列表 + */ + + @GetMapping("getWmsHppStorePlaceList") + public R> getWmsHppStorePlacelist(WmsHppStorePlaceBo bo) { + List list = wmsHppStorePlaceService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsHsmToolingController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsHsmToolingController.java new file mode 100644 index 0000000..d080e9e --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsHsmToolingController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsHsmToolingBo; +import org.dromara.wms.domain.vo.WmsHsmToolingVo; +import org.dromara.wms.service.IWmsHsmToolingService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 半成品工装 + * 前端访问路由地址为:/system/hsmTooling + * + * @author LionLi + * @date 2025-01-14 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/hsmTooling") +public class WmsHsmToolingController extends BaseController { + + private final IWmsHsmToolingService wmsHsmToolingService; + + /** + * 查询半成品工装列表 + */ + @SaCheckPermission("system:hsmTooling:list") + @GetMapping("/list") + public TableDataInfo list(WmsHsmToolingBo bo, PageQuery pageQuery) { + return wmsHsmToolingService.queryPageList(bo, pageQuery); + } + + /** + * 导出半成品工装列表 + */ + @SaCheckPermission("system:hsmTooling:export") + @Log(title = "半成品工装", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsHsmToolingBo bo, HttpServletResponse response) { + List list = wmsHsmToolingService.queryList(bo); + ExcelUtil.exportExcel(list, "半成品工装", WmsHsmToolingVo.class, response); + } + + /** + * 获取半成品工装详细信息 + * + * @param OBJID 主键 + */ + @SaCheckPermission("system:hsmTooling:query") + @GetMapping("/{OBJID}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long OBJID) { + return R.ok(wmsHsmToolingService.queryById(OBJID)); + } + + /** + * 新增半成品工装 + */ + @SaCheckPermission("system:hsmTooling:add") + @Log(title = "半成品工装", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@RequestBody WmsHsmToolingBo bo) { + return toAjax(wmsHsmToolingService.insertByBo(bo)); + } + + /** + * 修改半成品工装 + */ + @SaCheckPermission("system:hsmTooling:edit") + @Log(title = "半成品工装", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@RequestBody WmsHsmToolingBo bo) { + return toAjax(wmsHsmToolingService.updateByBo(bo)); + } + + /** + * 删除半成品工装 + * + * @param OBJIDs 主键串 + */ + @SaCheckPermission("system:hsmTooling:remove") + @Log(title = "半成品工装", businessType = BusinessType.DELETE) + @DeleteMapping("/{OBJIDs}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] OBJIDs) { + return toAjax(wmsHsmToolingService.deleteWithValidByIds(List.of(OBJIDs), true)); + } + + + /** + * 下拉框查询半成品工装列表 + */ + + @GetMapping("getWmsHsmToolingList") + public R> getWmsHsmToolinglist(WmsHsmToolingBo bo) { + List list = wmsHsmToolingService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInstockDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInstockDetailController.java index b06435f..43559c6 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInstockDetailController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInstockDetailController.java @@ -77,7 +77,7 @@ public class WmsInstockDetailController extends BaseController { @Log(title = "入库单-物料", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add(@RequestBody WmsInstockDetailBo bo) { + public R add(@RequestBody List bo) { return toAjax(wmsInstockDetailService.insertByBo(bo)); } @@ -104,4 +104,11 @@ public class WmsInstockDetailController extends BaseController { @PathVariable Long[] instockDetailIds) { return toAjax(wmsInstockDetailService.deleteWithValidByIds(List.of(instockDetailIds), true)); } + + @SaCheckPermission("system:instockDetail:remove") + @Log(title = "入库单-物料", businessType = BusinessType.DELETE) + @DeleteMapping("/removeInstockDetail/{instockDetailId}") + public R removeInstockDetail( @PathVariable Long instockDetailId) { + return toAjax(wmsInstockDetailService.deleteById(instockDetailId)>0); + } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInstockOrderController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInstockOrderController.java index a8b5e8c..5fc6bc2 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInstockOrderController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInstockOrderController.java @@ -77,8 +77,8 @@ public class WmsInstockOrderController extends BaseController { @Log(title = "入库单", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add( @RequestBody WmsInstockOrderBo bo) { - return toAjax(wmsInstockOrderService.insertByBo(bo)); + public R add( @RequestBody WmsInstockOrderBo bo) { + return R.ok(wmsInstockOrderService.insertByBo(bo)); } /** @@ -88,7 +88,7 @@ public class WmsInstockOrderController extends BaseController { @Log(title = "入库单", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody WmsInstockOrderBo bo) { + public R edit(@RequestBody WmsInstockOrderBo bo) { return toAjax(wmsInstockOrderService.updateByBo(bo)); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryCheckController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryCheckController.java new file mode 100644 index 0000000..bdad3fe --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryCheckController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsInventoryCheckBo; +import org.dromara.wms.domain.vo.WmsInventoryCheckVo; +import org.dromara.wms.service.IWmsInventoryCheckService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 库存盘点 + * 前端访问路由地址为:/system/inventoryCheck + * + * @author LionLi + * @date 2025-01-10 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/inventoryCheck") +public class WmsInventoryCheckController extends BaseController { + + private final IWmsInventoryCheckService wmsInventoryCheckService; + + /** + * 查询库存盘点列表 + */ + @SaCheckPermission("system:inventoryCheck:list") + @GetMapping("/list") + public TableDataInfo list(WmsInventoryCheckBo bo, PageQuery pageQuery) { + return wmsInventoryCheckService.queryPageList(bo, pageQuery); + } + + /** + * 导出库存盘点列表 + */ + @SaCheckPermission("system:inventoryCheck:export") + @Log(title = "库存盘点", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsInventoryCheckBo bo, HttpServletResponse response) { + List list = wmsInventoryCheckService.queryList(bo); + ExcelUtil.exportExcel(list, "库存盘点", WmsInventoryCheckVo.class, response); + } + + /** + * 获取库存盘点详细信息 + * + * @param inventoryCheckId 主键 + */ + @SaCheckPermission("system:inventoryCheck:query") + @GetMapping("/{inventoryCheckId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long inventoryCheckId) { + return R.ok(wmsInventoryCheckService.queryById(inventoryCheckId)); + } + + /** + * 新增库存盘点 + */ + @SaCheckPermission("system:inventoryCheck:add") + @Log(title = "库存盘点", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@RequestBody WmsInventoryCheckBo bo) { + return toAjax(wmsInventoryCheckService.insertByBo(bo)); + } + + /** + * 修改库存盘点 + */ + @SaCheckPermission("system:inventoryCheck:edit") + @Log(title = "库存盘点", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsInventoryCheckBo bo) { + return toAjax(wmsInventoryCheckService.updateByBo(bo)); + } + + /** + * 删除库存盘点 + * + * @param inventoryCheckIds 主键串 + */ + @SaCheckPermission("system:inventoryCheck:remove") + @Log(title = "库存盘点", businessType = BusinessType.DELETE) + @DeleteMapping("/{inventoryCheckIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] inventoryCheckIds) { + return toAjax(wmsInventoryCheckService.deleteWithValidByIds(List.of(inventoryCheckIds), true)); + } + + + /** + * 下拉框查询库存盘点列表 + */ + + @GetMapping("getWmsInventoryCheckList") + public R> getWmsInventoryChecklist(WmsInventoryCheckBo bo) { + List list = wmsInventoryCheckService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryCheckRecordController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryCheckRecordController.java new file mode 100644 index 0000000..2adce77 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryCheckRecordController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsInventoryCheckRecordBo; +import org.dromara.wms.domain.vo.WmsInventoryCheckRecordVo; +import org.dromara.wms.service.IWmsInventoryCheckRecordService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 盘点记录和调整工单 + * 前端访问路由地址为:/system/inventoryCheckRecord + * + * @author LionLi + * @date 2025-01-10 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/inventoryCheckRecord") +public class WmsInventoryCheckRecordController extends BaseController { + + private final IWmsInventoryCheckRecordService wmsInventoryCheckRecordService; + + /** + * 查询盘点记录和调整工单列表 + */ + @SaCheckPermission("system:inventoryCheckRecord:list") + @GetMapping("/list") + public TableDataInfo list(WmsInventoryCheckRecordBo bo, PageQuery pageQuery) { + return wmsInventoryCheckRecordService.queryPageList(bo, pageQuery); + } + + /** + * 导出盘点记录和调整工单列表 + */ + @SaCheckPermission("system:inventoryCheckRecord:export") + @Log(title = "盘点记录和调整工单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsInventoryCheckRecordBo bo, HttpServletResponse response) { + List list = wmsInventoryCheckRecordService.queryList(bo); + ExcelUtil.exportExcel(list, "盘点记录和调整工单", WmsInventoryCheckRecordVo.class, response); + } + + /** + * 获取盘点记录和调整工单详细信息 + * + * @param icRecordId 主键 + */ + @SaCheckPermission("system:inventoryCheckRecord:query") + @GetMapping("/{icRecordId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long icRecordId) { + return R.ok(wmsInventoryCheckRecordService.queryById(icRecordId)); + } + + /** + * 新增盘点记录和调整工单 + */ + @SaCheckPermission("system:inventoryCheckRecord:add") + @Log(title = "盘点记录和调整工单", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsInventoryCheckRecordBo bo) { + return toAjax(wmsInventoryCheckRecordService.insertByBo(bo)); + } + + /** + * 修改盘点记录和调整工单 + */ + @SaCheckPermission("system:inventoryCheckRecord:edit") + @Log(title = "盘点记录和调整工单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsInventoryCheckRecordBo bo) { + return toAjax(wmsInventoryCheckRecordService.updateByBo(bo)); + } + + /** + * 删除盘点记录和调整工单 + * + * @param icRecordIds 主键串 + */ + @SaCheckPermission("system:inventoryCheckRecord:remove") + @Log(title = "盘点记录和调整工单", businessType = BusinessType.DELETE) + @DeleteMapping("/{icRecordIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] icRecordIds) { + return toAjax(wmsInventoryCheckRecordService.deleteWithValidByIds(List.of(icRecordIds), true)); + } + + + /** + * 下拉框查询盘点记录和调整工单列表 + */ + + @GetMapping("getWmsInventoryCheckRecordList") + public R> getWmsInventoryCheckRecordlist(WmsInventoryCheckRecordBo bo) { + List list = wmsInventoryCheckRecordService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryController.java index b4074ca..56cf06d 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsInventoryController.java @@ -48,6 +48,17 @@ public class WmsInventoryController extends BaseController { return wmsInventoryService.queryPageList(bo, pageQuery); } + /** + * 查询物料报警 + * @param bo + * @param pageQuery + * @return + */ + @GetMapping("/listInventoryAlarm") + public TableDataInfo listInventoryAlarm(WmsInventoryBo bo, PageQuery pageQuery) { + return wmsInventoryService.listInventoryAlarm(bo, pageQuery); + } + /** * 导出物料库存列表 */ @@ -113,4 +124,9 @@ public class WmsInventoryController extends BaseController { BigDecimal bigDecimal = wmsInventoryService.materailCount(materialId); return R.ok(wmsInventoryService.materailCount(materialId)); } + + @GetMapping("/getMaterialInfoList") + public R> getMaterialInfoList(WmsInventoryBo bo) { + return R.ok(wmsInventoryService.getMaterialInfoList(bo)); + } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsMoveOrderController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsMoveOrderController.java new file mode 100644 index 0000000..5848147 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsMoveOrderController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsMoveOrderBo; +import org.dromara.wms.domain.vo.WmsMoveOrderVo; +import org.dromara.wms.service.IWmsMoveOrderService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 移库工单 + * 前端访问路由地址为:/system/moveOrder + * + * @author LionLi + * @date 2025-01-10 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/moveOrder") +public class WmsMoveOrderController extends BaseController { + + private final IWmsMoveOrderService wmsMoveOrderService; + + /** + * 查询移库工单列表 + */ + @SaCheckPermission("system:moveOrder:list") + @GetMapping("/list") + public TableDataInfo list(WmsMoveOrderBo bo, PageQuery pageQuery) { + return wmsMoveOrderService.queryPageList(bo, pageQuery); + } + + /** + * 导出移库工单列表 + */ + @SaCheckPermission("system:moveOrder:export") + @Log(title = "移库工单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsMoveOrderBo bo, HttpServletResponse response) { + List list = wmsMoveOrderService.queryList(bo); + ExcelUtil.exportExcel(list, "移库工单", WmsMoveOrderVo.class, response); + } + + /** + * 获取移库工单详细信息 + * + * @param moveId 主键 + */ + @SaCheckPermission("system:moveOrder:query") + @GetMapping("/{moveId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long moveId) { + return R.ok(wmsMoveOrderService.queryById(moveId)); + } + + /** + * 新增移库工单 + */ + @SaCheckPermission("system:moveOrder:add") + @Log(title = "移库工单", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsMoveOrderBo bo) { + return toAjax(wmsMoveOrderService.insertByBo(bo)); + } + + /** + * 修改移库工单 + */ + @SaCheckPermission("system:moveOrder:edit") + @Log(title = "移库工单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsMoveOrderBo bo) { + return toAjax(wmsMoveOrderService.updateByBo(bo)); + } + + /** + * 删除移库工单 + * + * @param moveIds 主键串 + */ + @SaCheckPermission("system:moveOrder:remove") + @Log(title = "移库工单", businessType = BusinessType.DELETE) + @DeleteMapping("/{moveIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] moveIds) { + return toAjax(wmsMoveOrderService.deleteWithValidByIds(List.of(moveIds), true)); + } + + + /** + * 下拉框查询移库工单列表 + */ + + @GetMapping("getWmsMoveOrderList") + public R> getWmsMoveOrderlist(WmsMoveOrderBo bo) { + List list = wmsMoveOrderService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockDetailController.java index c3b4bd5..141567d 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockDetailController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockDetailController.java @@ -6,6 +6,9 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.WmsInstockDetail; +import org.dromara.wms.domain.WmsOutstockDetail; +import org.dromara.wms.domain.bo.WmsInstockDetailBo; import org.dromara.wms.domain.bo.WmsOutstockDetailBo; import org.dromara.wms.domain.vo.WmsOutstockDetailVo; import org.dromara.wms.service.IWmsOutstockDetailService; @@ -77,7 +80,7 @@ public class WmsOutstockDetailController extends BaseController { @Log(title = "出库单-物料", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add(@RequestBody WmsOutstockDetailBo bo) { + public R add(@RequestBody List bo) { return toAjax(wmsOutstockDetailService.insertByBo(bo)); } @@ -101,7 +104,14 @@ public class WmsOutstockDetailController extends BaseController { @Log(title = "出库单-物料", businessType = BusinessType.DELETE) @DeleteMapping("/{outstockDetailIds}") public R remove(@NotEmpty(message = "主键不能为空") - @PathVariable Long[] outstockDetailIds) { + @PathVariable Long outstockDetailIds) { return toAjax(wmsOutstockDetailService.deleteWithValidByIds(List.of(outstockDetailIds), true)); } + + @SaCheckPermission("system:outstockDetail:remove") + @Log(title = "出库单-物料", businessType = BusinessType.DELETE) + @DeleteMapping("detailRemove/{outstockDetailId}") + public R removeOutstockDetailId(@PathVariable Long outstockDetailId) { + return toAjax(wmsOutstockDetailService.deleteById(outstockDetailId)>0); + } } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockOrderController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockOrderController.java index 51950e4..d215c32 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockOrderController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockOrderController.java @@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.WmsOutstockOrder; import org.dromara.wms.domain.bo.WmsOutstockOrderBo; import org.dromara.wms.domain.vo.WmsOutstockOrderVo; import org.dromara.wms.service.IWmsOutstockOrderService; @@ -76,8 +77,8 @@ public class WmsOutstockOrderController extends BaseController { @Log(title = "出库单", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() - public R add(@Validated(AddGroup.class) @RequestBody WmsOutstockOrderBo bo) { - return toAjax(wmsOutstockOrderService.insertByBo(bo)); + public R add(@RequestBody WmsOutstockOrderBo bo) { + return R.ok(wmsOutstockOrderService.insertByBo(bo)); } /** diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockRecordController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockRecordController.java index 656bcae..6ca1a0b 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockRecordController.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsOutstockRecordController.java @@ -87,7 +87,7 @@ public class WmsOutstockRecordController extends BaseController { @Log(title = "出库记录", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() - public R edit(@Validated(EditGroup.class) @RequestBody WmsOutstockRecordBo bo) { + public R edit(@RequestBody WmsOutstockRecordBo bo) { return toAjax(wmsOutstockRecordService.updateByBo(bo)); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java new file mode 100644 index 0000000..3d3bf93 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPdaApiController.java @@ -0,0 +1,149 @@ +package org.dromara.wms.controller; + +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.web.core.BaseController; +import org.dromara.wms.domain.WmsHppStorageDetail; +import org.dromara.wms.domain.bo.WmsReturnOrderBo; +import org.dromara.wms.domain.vo.*; +import org.dromara.wms.service.*; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +@RequiredArgsConstructor +@RestController +@RequestMapping("/pda") +public class WmsPdaApiController extends BaseController { + + private final IWmsPdaApiService apiService; + + private final IWmsReturnOrderService wmsReturnOrderService; + + private final IWmsPsmStorePlaceService wmsPsmStorePlaceService; + + + /** + * 原材料退库-现场扫描 + * + */ + @PostMapping("/raw/returnSelectCode") + public R returnSelectCode(String code) { + WmsOutstockRecordVo wmsOutstockRecordVo = apiService.returnSelectCode(code); + + if (wmsOutstockRecordVo == null) { + return R.fail("条码错误,不能退库"); + } + return R.ok(wmsOutstockRecordVo); + } + + /** + * 原材料退库提交 + */ + @PostMapping("/raw/returnSubmit") + public R rawReturnSubmit(@RequestBody WmsReturnOrderBo bo) { + Boolean result = wmsReturnOrderService.insertByBo(bo); + if (result) { + apiService.rawReturnSubmitUpdateStateById(bo.getOutstockRecordId()); + } + return toAjax(result); + } + + /** + * 成品跟载具绑定 + * + * @param vehicleCode 载具 + * @param productList 成品轮胎码list + */ + @PostMapping("/product/bindVehicleSubmit") + public R bindVehicleSubmit(@RequestParam String vehicleCode, @RequestParam List productList) { + Boolean result = apiService.bindVehicleSubmit(vehicleCode, productList); + if (result) { + return R.ok(); + } + return R.fail(); + } + + /** + * 成品入库-扫描载具号查询物料信息 + * + * @param code 载具 + * @return WmsPsmInLoadVo + */ + @PostMapping("/product/selectVehicleInfo") + public R selectVehicleInfo(String code) { + WmsPsmInLoadVo wmsPsmInLoadVo = apiService.productSelectVehicleInfo(code); + if (wmsPsmInLoadVo == null) { + return R.fail("载具编号错误"); + } + return R.ok(wmsPsmInLoadVo); + } + + /** + * 成品入库提交信息 + * @param vo info + */ + @PostMapping("/product/submitInStoreInfo") + public R productSubmitInStoreInfo(@RequestBody WmsPsmInLoadVo vo) { + // 验证库位条码 + WmsPsmStorePlaceVo wmsPsmStorePlace = wmsPsmStorePlaceService.selectStorePlaceInfoByCode(vo.getStorePlaceCode()); + if (wmsPsmStorePlace == null) { + return R.fail("库位编码扫描错误"); + } + vo.setStoreName(wmsPsmStorePlace.getStoreName()); + Boolean result = apiService.productSubmitInStoreInfo(vo); + + return result ? R.ok() : R.fail(); + } + + /** + * 半成品入库 + * @param code 载具 + */ + @PostMapping("/semi/selectVehicleInfo") + public R semiSelectVehicleInfo(String code) { + WmsHppInStockDetailVo wmsHppInStockDetailVo=apiService.semiSelectVehicleInfo(code); + if (wmsHppInStockDetailVo == null) { + return R.fail("载具没有绑定物料,或者载具编码扫描错误"); + } + return R.ok(wmsHppInStockDetailVo); + } + + private final IWmsHppStorePlaceService wmsHppStorePlaceService; + + /** + * 半成品入库提交 + * @param vo xinx + */ + @PostMapping("/semi/submitInstore") + public R semiSubmitInStoreInfo(@RequestBody WmsHppInStockDetailVo vo) { + // 验证库位条码 + WmsHppStorePlaceVo wmsPsmStorePlace = wmsHppStorePlaceService.selectStorePlaceInfoByCode(vo.getStorePlaceCode()); + if (wmsPsmStorePlace == null) { + return R.fail("库位编码扫描错误"); + } + vo.setStorePlaceId(wmsPsmStorePlace.getObjId()); + Boolean result = apiService.updataInStoreRecord(vo); + return result ? R.ok() : R.fail(); + } + + /** + * 查询半成品库存信息 + * @param code 流水卡号 + * @return WmsHppStorageDetailVo + */ + @PostMapping("/semi/selectHppStorageInfo") + public R selectHppStorageDetailInfobyCode(String code) { + WmsHppStorageDetailVo wmsHppStorageDetailVo= apiService.selectHppStorageDetailInfobyCode(code); + if (wmsHppStorageDetailVo == null) { + return R.fail("流水卡号错误,或者库存消耗完毕"); + } + return R.ok(wmsHppStorageDetailVo); + } + + + @PostMapping("/semi/submitOutInfo") + public R semiSubmitOutInfo(@RequestBody WmsHppStorageDetailVo vo) { + Boolean result = apiService.semiSubmitOutInfo(vo); + return result ? R.ok() : R.fail(); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmInLoadController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmInLoadController.java new file mode 100644 index 0000000..96d6670 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmInLoadController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsPsmInLoadBo; +import org.dromara.wms.domain.vo.WmsPsmInLoadVo; +import org.dromara.wms.service.IWmsPsmInLoadService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 装车架子信息 + * 前端访问路由地址为:/system/psmInLoad + * + * @author LionLi + * @date 2025-01-15 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/psmInLoad") +public class WmsPsmInLoadController extends BaseController { + + private final IWmsPsmInLoadService wmsPsmInLoadService; + + /** + * 查询装车架子信息列表 + */ + @SaCheckPermission("system:psmInLoad:list") + @GetMapping("/list") + public TableDataInfo list(WmsPsmInLoadBo bo, PageQuery pageQuery) { + return wmsPsmInLoadService.queryPageList(bo, pageQuery); + } + + /** + * 导出装车架子信息列表 + */ + @SaCheckPermission("system:psmInLoad:export") + @Log(title = "装车架子信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsPsmInLoadBo bo, HttpServletResponse response) { + List list = wmsPsmInLoadService.queryList(bo); + ExcelUtil.exportExcel(list, "装车架子信息", WmsPsmInLoadVo.class, response); + } + + /** + * 获取装车架子信息详细信息 + * + * @param inLoadId 主键 + */ + @SaCheckPermission("system:psmInLoad:query") + @GetMapping("/{inLoadId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long inLoadId) { + return R.ok(wmsPsmInLoadService.queryById(inLoadId)); + } + + /** + * 新增装车架子信息 + */ + @SaCheckPermission("system:psmInLoad:add") + @Log(title = "装车架子信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsPsmInLoadBo bo) { + return toAjax(wmsPsmInLoadService.insertByBo(bo)); + } + + /** + * 修改装车架子信息 + */ + @SaCheckPermission("system:psmInLoad:edit") + @Log(title = "装车架子信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsPsmInLoadBo bo) { + return toAjax(wmsPsmInLoadService.updateByBo(bo)); + } + + /** + * 删除装车架子信息 + * + * @param inLoadIds 主键串 + */ + @SaCheckPermission("system:psmInLoad:remove") + @Log(title = "装车架子信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{inLoadIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] inLoadIds) { + return toAjax(wmsPsmInLoadService.deleteWithValidByIds(List.of(inLoadIds), true)); + } + + + /** + * 下拉框查询装车架子信息列表 + */ + + @GetMapping("getWmsPsmInLoadList") + public R> getWmsPsmInLoadlist(WmsPsmInLoadBo bo) { + List list = wmsPsmInLoadService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmInLoadDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmInLoadDetailController.java new file mode 100644 index 0000000..d1c14ea --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmInLoadDetailController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsPsmInLoadDetailBo; +import org.dromara.wms.domain.vo.WmsPsmInLoadDetailVo; +import org.dromara.wms.service.IWmsPsmInLoadDetailService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 装车架子详细信息 + * 前端访问路由地址为:/system/psmInLoadDetail + * + * @author LionLi + * @date 2025-01-15 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/psmInLoadDetail") +public class WmsPsmInLoadDetailController extends BaseController { + + private final IWmsPsmInLoadDetailService wmsPsmInLoadDetailService; + + /** + * 查询装车架子详细信息列表 + */ + @SaCheckPermission("system:psmInLoadDetail:list") + @GetMapping("/list") + public TableDataInfo list(WmsPsmInLoadDetailBo bo, PageQuery pageQuery) { + return wmsPsmInLoadDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出装车架子详细信息列表 + */ + @SaCheckPermission("system:psmInLoadDetail:export") + @Log(title = "装车架子详细信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsPsmInLoadDetailBo bo, HttpServletResponse response) { + List list = wmsPsmInLoadDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "装车架子详细信息", WmsPsmInLoadDetailVo.class, response); + } + + /** + * 获取装车架子详细信息详细信息 + * + * @param objid 主键 + */ + @SaCheckPermission("system:psmInLoadDetail:query") + @GetMapping("/{objid}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long objid) { + return R.ok(wmsPsmInLoadDetailService.queryById(objid)); + } + + /** + * 新增装车架子详细信息 + */ + @SaCheckPermission("system:psmInLoadDetail:add") + @Log(title = "装车架子详细信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsPsmInLoadDetailBo bo) { + return toAjax(wmsPsmInLoadDetailService.insertByBo(bo)); + } + + /** + * 修改装车架子详细信息 + */ + @SaCheckPermission("system:psmInLoadDetail:edit") + @Log(title = "装车架子详细信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsPsmInLoadDetailBo bo) { + return toAjax(wmsPsmInLoadDetailService.updateByBo(bo)); + } + + /** + * 删除装车架子详细信息 + * + * @param objids 主键串 + */ + @SaCheckPermission("system:psmInLoadDetail:remove") + @Log(title = "装车架子详细信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{objids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] objids) { + return toAjax(wmsPsmInLoadDetailService.deleteWithValidByIds(List.of(objids), true)); + } + + + /** + * 下拉框查询装车架子详细信息列表 + */ + + @GetMapping("getWmsPsmInLoadDetailList") + public R> getWmsPsmInLoadDetaillist(WmsPsmInLoadDetailBo bo) { + List list = wmsPsmInLoadDetailService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmInStockController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmInStockController.java new file mode 100644 index 0000000..cfc935a --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmInStockController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsPsmInStockBo; +import org.dromara.wms.domain.vo.WmsPsmInStockVo; +import org.dromara.wms.service.IWmsPsmInStockService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 成品入库记录 + * 前端访问路由地址为:/system/psmInStock + * + * @author LionLi + * @date 2025-01-15 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/psmInStock") +public class WmsPsmInStockController extends BaseController { + + private final IWmsPsmInStockService wmsPsmInStockService; + + /** + * 查询成品入库记录列表 + */ + @SaCheckPermission("system:psmInStock:list") + @GetMapping("/list") + public TableDataInfo list(WmsPsmInStockBo bo, PageQuery pageQuery) { + return wmsPsmInStockService.queryPageList(bo, pageQuery); + } + + /** + * 导出成品入库记录列表 + */ + @SaCheckPermission("system:psmInStock:export") + @Log(title = "成品入库记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsPsmInStockBo bo, HttpServletResponse response) { + List list = wmsPsmInStockService.queryList(bo); + ExcelUtil.exportExcel(list, "成品入库记录", WmsPsmInStockVo.class, response); + } + + /** + * 获取成品入库记录详细信息 + * + * @param inStockId 主键 + */ + @SaCheckPermission("system:psmInStock:query") + @GetMapping("/{inStockId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long inStockId) { + return R.ok(wmsPsmInStockService.queryById(inStockId)); + } + + /** + * 新增成品入库记录 + */ + @SaCheckPermission("system:psmInStock:add") + @Log(title = "成品入库记录", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsPsmInStockBo bo) { + return toAjax(wmsPsmInStockService.insertByBo(bo)); + } + + /** + * 修改成品入库记录 + */ + @SaCheckPermission("system:psmInStock:edit") + @Log(title = "成品入库记录", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsPsmInStockBo bo) { + return toAjax(wmsPsmInStockService.updateByBo(bo)); + } + + /** + * 删除成品入库记录 + * + * @param inStockIds 主键串 + */ + @SaCheckPermission("system:psmInStock:remove") + @Log(title = "成品入库记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{inStockIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] inStockIds) { + return toAjax(wmsPsmInStockService.deleteWithValidByIds(List.of(inStockIds), true)); + } + + + /** + * 下拉框查询成品入库记录列表 + */ + + @GetMapping("getWmsPsmInStockList") + public R> getWmsPsmInStocklist(WmsPsmInStockBo bo) { + List list = wmsPsmInStockService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmInStockDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmInStockDetailController.java new file mode 100644 index 0000000..cbefd8e --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmInStockDetailController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsPsmInStockDetailBo; +import org.dromara.wms.domain.vo.WmsPsmInStockDetailVo; +import org.dromara.wms.service.IWmsPsmInStockDetailService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 成品入库 + * 前端访问路由地址为:/system/psmInStockDetail + * + * @author LionLi + * @date 2025-01-15 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/psmInStockDetail") +public class WmsPsmInStockDetailController extends BaseController { + + private final IWmsPsmInStockDetailService wmsPsmInStockDetailService; + + /** + * 查询成品入库列表 + */ + @SaCheckPermission("system:psmInStockDetail:list") + @GetMapping("/list") + public TableDataInfo list(WmsPsmInStockDetailBo bo, PageQuery pageQuery) { + return wmsPsmInStockDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出成品入库列表 + */ + @SaCheckPermission("system:psmInStockDetail:export") + @Log(title = "成品入库", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsPsmInStockDetailBo bo, HttpServletResponse response) { + List list = wmsPsmInStockDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "成品入库", WmsPsmInStockDetailVo.class, response); + } + + /** + * 获取成品入库详细信息 + * + * @param objid 主键 + */ + @SaCheckPermission("system:psmInStockDetail:query") + @GetMapping("/{objid}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long objid) { + return R.ok(wmsPsmInStockDetailService.queryById(objid)); + } + + /** + * 新增成品入库 + */ + @SaCheckPermission("system:psmInStockDetail:add") + @Log(title = "成品入库", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@RequestBody WmsPsmInStockDetailBo bo) { + return toAjax(wmsPsmInStockDetailService.insertByBo(bo)); + } + + /** + * 修改成品入库 + */ + @SaCheckPermission("system:psmInStockDetail:edit") + @Log(title = "成品入库", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@RequestBody WmsPsmInStockDetailBo bo) { + return toAjax(wmsPsmInStockDetailService.updateByBo(bo)); + } + + /** + * 删除成品入库 + * + * @param objids 主键串 + */ + @SaCheckPermission("system:psmInStockDetail:remove") + @Log(title = "成品入库", businessType = BusinessType.DELETE) + @DeleteMapping("/{objids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] objids) { + return toAjax(wmsPsmInStockDetailService.deleteWithValidByIds(List.of(objids), true)); + } + + + /** + * 下拉框查询成品入库列表 + */ + + @GetMapping("getWmsPsmInStockDetailList") + public R> getWmsPsmInStockDetaillist(WmsPsmInStockDetailBo bo) { + List list = wmsPsmInStockDetailService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmStorageController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmStorageController.java new file mode 100644 index 0000000..146ba3a --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmStorageController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsPsmStorageBo; +import org.dromara.wms.domain.vo.WmsPsmStorageVo; +import org.dromara.wms.service.IWmsPsmStorageService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 成品库存 + * 前端访问路由地址为:/system/psmStorage + * + * @author LionLi + * @date 2025-01-15 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/psmStorage") +public class WmsPsmStorageController extends BaseController { + + private final IWmsPsmStorageService wmsPsmStorageService; + + /** + * 查询成品库存列表 + */ + @SaCheckPermission("system:psmStorage:list") + @GetMapping("/list") + public TableDataInfo list(WmsPsmStorageBo bo, PageQuery pageQuery) { + return wmsPsmStorageService.queryPageList(bo, pageQuery); + } + + /** + * 导出成品库存列表 + */ + @SaCheckPermission("system:psmStorage:export") + @Log(title = "成品库存", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsPsmStorageBo bo, HttpServletResponse response) { + List list = wmsPsmStorageService.queryList(bo); + ExcelUtil.exportExcel(list, "成品库存", WmsPsmStorageVo.class, response); + } + + /** + * 获取成品库存详细信息 + * + * @param objid 主键 + */ + @SaCheckPermission("system:psmStorage:query") + @GetMapping("/{objid}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long objid) { + return R.ok(wmsPsmStorageService.queryById(objid)); + } + + /** + * 新增成品库存 + */ + @SaCheckPermission("system:psmStorage:add") + @Log(title = "成品库存", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody WmsPsmStorageBo bo) { + return toAjax(wmsPsmStorageService.insertByBo(bo)); + } + + /** + * 修改成品库存 + */ + @SaCheckPermission("system:psmStorage:edit") + @Log(title = "成品库存", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsPsmStorageBo bo) { + return toAjax(wmsPsmStorageService.updateByBo(bo)); + } + + /** + * 删除成品库存 + * + * @param objids 主键串 + */ + @SaCheckPermission("system:psmStorage:remove") + @Log(title = "成品库存", businessType = BusinessType.DELETE) + @DeleteMapping("/{objids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] objids) { + return toAjax(wmsPsmStorageService.deleteWithValidByIds(List.of(objids), true)); + } + + + /** + * 下拉框查询成品库存列表 + */ + + @GetMapping("getWmsPsmStorageList") + public R> getWmsPsmStoragelist(WmsPsmStorageBo bo) { + List list = wmsPsmStorageService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmStoreController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmStoreController.java new file mode 100644 index 0000000..45d9a79 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmStoreController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsPsmStoreBo; +import org.dromara.wms.domain.vo.WmsPsmStoreVo; +import org.dromara.wms.service.IWmsPsmStoreService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 成品仓库管理 + * 前端访问路由地址为:/system/psmStore + * + * @author LionLi + * @date 2025-01-15 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/psmStore") +public class WmsPsmStoreController extends BaseController { + + private final IWmsPsmStoreService wmsPsmStoreService; + + /** + * 查询成品仓库管理列表 + */ + @SaCheckPermission("system:psmStore:list") + @GetMapping("/list") + public TableDataInfo list(WmsPsmStoreBo bo, PageQuery pageQuery) { + return wmsPsmStoreService.queryPageList(bo, pageQuery); + } + + /** + * 导出成品仓库管理列表 + */ + @SaCheckPermission("system:psmStore:export") + @Log(title = "成品仓库管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsPsmStoreBo bo, HttpServletResponse response) { + List list = wmsPsmStoreService.queryList(bo); + ExcelUtil.exportExcel(list, "成品仓库管理", WmsPsmStoreVo.class, response); + } + + /** + * 获取成品仓库管理详细信息 + * + * @param storeId 主键 + */ + @SaCheckPermission("system:psmStore:query") + @GetMapping("/{storeId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long storeId) { + return R.ok(wmsPsmStoreService.queryById(storeId)); + } + + /** + * 新增成品仓库管理 + */ + @SaCheckPermission("system:psmStore:add") + @Log(title = "成品仓库管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@RequestBody WmsPsmStoreBo bo) { + return toAjax(wmsPsmStoreService.insertByBo(bo)); + } + + /** + * 修改成品仓库管理 + */ + @SaCheckPermission("system:psmStore:edit") + @Log(title = "成品仓库管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@RequestBody WmsPsmStoreBo bo) { + return toAjax(wmsPsmStoreService.updateByBo(bo)); + } + + /** + * 删除成品仓库管理 + * + * @param storeIds 主键串 + */ + @SaCheckPermission("system:psmStore:remove") + @Log(title = "成品仓库管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{storeIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] storeIds) { + return toAjax(wmsPsmStoreService.deleteWithValidByIds(List.of(storeIds), true)); + } + + + /** + * 下拉框查询成品仓库管理列表 + */ + + @GetMapping("getWmsPsmStoreList") + public R> getWmsPsmStorelist(WmsPsmStoreBo bo) { + List list = wmsPsmStoreService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmStorePlaceController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmStorePlaceController.java new file mode 100644 index 0000000..7274208 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmStorePlaceController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsPsmStorePlaceBo; +import org.dromara.wms.domain.vo.WmsPsmStorePlaceVo; +import org.dromara.wms.service.IWmsPsmStorePlaceService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 成品库位管理 + * 前端访问路由地址为:/system/psmStorePlace + * + * @author LionLi + * @date 2025-01-15 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/psmStorePlace") +public class WmsPsmStorePlaceController extends BaseController { + + private final IWmsPsmStorePlaceService wmsPsmStorePlaceService; + + /** + * 查询成品库位管理列表 + */ + @SaCheckPermission("system:psmStorePlace:list") + @GetMapping("/list") + public TableDataInfo list(WmsPsmStorePlaceBo bo, PageQuery pageQuery) { + return wmsPsmStorePlaceService.queryPageList(bo, pageQuery); + } + + /** + * 导出成品库位管理列表 + */ + @SaCheckPermission("system:psmStorePlace:export") + @Log(title = "成品库位管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsPsmStorePlaceBo bo, HttpServletResponse response) { + List list = wmsPsmStorePlaceService.queryList(bo); + ExcelUtil.exportExcel(list, "成品库位管理", WmsPsmStorePlaceVo.class, response); + } + + /** + * 获取成品库位管理详细信息 + * + * @param storePlaceId 主键 + */ + @SaCheckPermission("system:psmStorePlace:query") + @GetMapping("/{storePlaceId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long storePlaceId) { + return R.ok(wmsPsmStorePlaceService.queryById(storePlaceId)); + } + + /** + * 新增成品库位管理 + */ + @SaCheckPermission("system:psmStorePlace:add") + @Log(title = "成品库位管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@RequestBody WmsPsmStorePlaceBo bo) { + return toAjax(wmsPsmStorePlaceService.insertByBo(bo)); + } + + /** + * 修改成品库位管理 + */ + @SaCheckPermission("system:psmStorePlace:edit") + @Log(title = "成品库位管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@RequestBody WmsPsmStorePlaceBo bo) { + return toAjax(wmsPsmStorePlaceService.updateByBo(bo)); + } + + /** + * 删除成品库位管理 + * + * @param storePlaceIds 主键串 + */ + @SaCheckPermission("system:psmStorePlace:remove") + @Log(title = "成品库位管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{storePlaceIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] storePlaceIds) { + return toAjax(wmsPsmStorePlaceService.deleteWithValidByIds(List.of(storePlaceIds), true)); + } + + + /** + * 下拉框查询成品库位管理列表 + */ + + @GetMapping("getWmsPsmStorePlaceList") + public R> getWmsPsmStorePlacelist(WmsPsmStorePlaceBo bo) { + List list = wmsPsmStorePlaceService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmStoreTypeController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmStoreTypeController.java new file mode 100644 index 0000000..0b5431d --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPsmStoreTypeController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.bo.WmsPsmStoreTypeBo; +import org.dromara.wms.domain.vo.WmsPsmStoreTypeVo; +import org.dromara.wms.service.IWmsPsmStoreTypeService; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 成品仓库类型 + * 前端访问路由地址为:/system/psmStoreType + * + * @author LionLi + * @date 2025-01-15 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/psmStoreType") +public class WmsPsmStoreTypeController extends BaseController { + + private final IWmsPsmStoreTypeService wmsPsmStoreTypeService; + + /** + * 查询成品仓库类型列表 + */ + @SaCheckPermission("system:psmStoreType:list") + @GetMapping("/list") + public TableDataInfo list(WmsPsmStoreTypeBo bo, PageQuery pageQuery) { + return wmsPsmStoreTypeService.queryPageList(bo, pageQuery); + } + + /** + * 导出成品仓库类型列表 + */ + @SaCheckPermission("system:psmStoreType:export") + @Log(title = "成品仓库类型", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsPsmStoreTypeBo bo, HttpServletResponse response) { + List list = wmsPsmStoreTypeService.queryList(bo); + ExcelUtil.exportExcel(list, "成品仓库类型", WmsPsmStoreTypeVo.class, response); + } + + /** + * 获取成品仓库类型详细信息 + * + * @param storeTypeId 主键 + */ + @SaCheckPermission("system:psmStoreType:query") + @GetMapping("/{storeTypeId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long storeTypeId) { + return R.ok(wmsPsmStoreTypeService.queryById(storeTypeId)); + } + + /** + * 新增成品仓库类型 + */ + @SaCheckPermission("system:psmStoreType:add") + @Log(title = "成品仓库类型", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@RequestBody WmsPsmStoreTypeBo bo) { + return toAjax(wmsPsmStoreTypeService.insertByBo(bo)); + } + + /** + * 修改成品仓库类型 + */ + @SaCheckPermission("system:psmStoreType:edit") + @Log(title = "成品仓库类型", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@RequestBody WmsPsmStoreTypeBo bo) { + return toAjax(wmsPsmStoreTypeService.updateByBo(bo)); + } + + /** + * 删除成品仓库类型 + * + * @param storeTypeIds 主键串 + */ + @SaCheckPermission("system:psmStoreType:remove") + @Log(title = "成品仓库类型", businessType = BusinessType.DELETE) + @DeleteMapping("/{storeTypeIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] storeTypeIds) { + return toAjax(wmsPsmStoreTypeService.deleteWithValidByIds(List.of(storeTypeIds), true)); + } + + + /** + * 下拉框查询成品仓库类型列表 + */ + + @GetMapping("getWmsPsmStoreTypeList") + public R> getWmsPsmStoreTypelist(WmsPsmStoreTypeBo bo) { + List list = wmsPsmStoreTypeService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java new file mode 100644 index 0000000..7c0da25 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderController.java @@ -0,0 +1,118 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.dromara.wms.domain.WmsPurchaseOrder; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.wms.domain.vo.WmsPurchaseOrderVo; +import org.dromara.wms.domain.bo.WmsPurchaseOrderBo; +import org.dromara.wms.service.IWmsPurchaseOrderService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 采购订单 + * 前端访问路由地址为:/wms/wmsPurchaseOrder + * + * @author ZangCH + * @date 2025-01-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/wmsPurchaseOrder") +public class WmsPurchaseOrderController extends BaseController { + + private final IWmsPurchaseOrderService wmsPurchaseOrderService; + + /** + * 查询采购订单列表 + */ + @SaCheckPermission("wms:wmsPurchaseOrder:list") + @GetMapping("/list") + public TableDataInfo list(WmsPurchaseOrderBo bo, PageQuery pageQuery) { + return wmsPurchaseOrderService.queryPageList(bo, pageQuery); + } + + /** + * 导出采购订单列表 + */ + @SaCheckPermission("wms:wmsPurchaseOrder:export") + @Log(title = "采购订单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsPurchaseOrderBo bo, HttpServletResponse response) { + List list = wmsPurchaseOrderService.queryList(bo); + ExcelUtil.exportExcel(list, "采购订单", WmsPurchaseOrderVo.class, response); + } + + /** + * 获取采购订单详细信息 + * + * @param poId 主键 + */ + @SaCheckPermission("wms:wmsPurchaseOrder:query") + @GetMapping("/{poId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long poId) { + return R.ok(wmsPurchaseOrderService.queryById(poId)); + } + + /** + * 新增采购订单 + */ + @SaCheckPermission("wms:wmsPurchaseOrder:add") + @Log(title = "采购订单", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@RequestBody WmsPurchaseOrderBo bo) { + return R.ok(wmsPurchaseOrderService.insertByBo(bo)); + } + + /** + * 修改采购订单 + */ + @SaCheckPermission("wms:wmsPurchaseOrder:edit") + @Log(title = "采购订单", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@RequestBody WmsPurchaseOrderBo bo) { + return toAjax(wmsPurchaseOrderService.updateByBo(bo)); + } + + /** + * 删除采购订单 + * + * @param poIds 主键串 + */ + @SaCheckPermission("wms:wmsPurchaseOrder:remove") + @Log(title = "采购订单", businessType = BusinessType.DELETE) + @DeleteMapping("/{poIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] poIds) { + return toAjax(wmsPurchaseOrderService.deleteWithValidByIds(List.of(poIds), true)); + } + + + /** + * 下拉框查询采购订单列表 + */ + + @GetMapping("getWmsPurchaseOrderList") + public R> getWmsPurchaseOrderlist(WmsPurchaseOrderBo bo) { + List list = wmsPurchaseOrderService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderDetailController.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderDetailController.java new file mode 100644 index 0000000..576dbc8 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/controller/WmsPurchaseOrderDetailController.java @@ -0,0 +1,117 @@ +package org.dromara.wms.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.wms.domain.vo.WmsPurchaseOrderDetailVo; +import org.dromara.wms.domain.bo.WmsPurchaseOrderDetailBo; +import org.dromara.wms.service.IWmsPurchaseOrderDetailService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 采购订单-物料 + * 前端访问路由地址为:/wms/wmsPurchaseOrderDetail + * + * @author ZangCH + * @date 2025-01-08 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/wmsPurchaseOrderDetail") +public class WmsPurchaseOrderDetailController extends BaseController { + + private final IWmsPurchaseOrderDetailService wmsPurchaseOrderDetailService; + + /** + * 查询采购订单-物料列表 + */ + @SaCheckPermission("wms:wmsPurchaseOrderDetail:list") + @GetMapping("/list") + public TableDataInfo list(WmsPurchaseOrderDetailBo bo, PageQuery pageQuery) { + return wmsPurchaseOrderDetailService.queryPageList(bo, pageQuery); + } + + /** + * 导出采购订单-物料列表 + */ + @SaCheckPermission("wms:wmsPurchaseOrderDetail:export") + @Log(title = "采购订单-物料", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(WmsPurchaseOrderDetailBo bo, HttpServletResponse response) { + List list = wmsPurchaseOrderDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "采购订单-物料", WmsPurchaseOrderDetailVo.class, response); + } + + /** + * 获取采购订单-物料详细信息 + * + * @param poDId 主键 + */ + @SaCheckPermission("wms:wmsPurchaseOrderDetail:query") + @GetMapping("/{poDId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long poDId) { + return R.ok(wmsPurchaseOrderDetailService.queryById(poDId)); + } + + /** + * 新增采购订单-物料 + */ + @SaCheckPermission("wms:wmsPurchaseOrderDetail:add") + @Log(title = "采购订单-物料", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@RequestBody List bo) { + return toAjax(wmsPurchaseOrderDetailService.insertByBo(bo)); + } + + /** + * 修改采购订单-物料 + */ + @SaCheckPermission("wms:wmsPurchaseOrderDetail:edit") + @Log(title = "采购订单-物料", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody WmsPurchaseOrderDetailBo bo) { + return toAjax(wmsPurchaseOrderDetailService.updateByBo(bo)); + } + + /** + * 删除采购订单-物料 + * + * @param poDIds 主键串 + */ + @SaCheckPermission("wms:wmsPurchaseOrderDetail:remove") + @Log(title = "采购订单-物料", businessType = BusinessType.DELETE) + @DeleteMapping("/{poDIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] poDIds) { + return toAjax(wmsPurchaseOrderDetailService.deleteWithValidByIds(List.of(poDIds), true)); + } + + + /** + * 下拉框查询采购订单-物料列表 + */ + + @GetMapping("getWmsPurchaseOrderDetailList") + public R> getWmsPurchaseOrderDetaillist(WmsPurchaseOrderDetailBo bo) { + List list = wmsPurchaseOrderDetailService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/BaseMaterialInfo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/BaseMaterialInfo.java index 4197cbd..ef3ed84 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/BaseMaterialInfo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/BaseMaterialInfo.java @@ -4,6 +4,8 @@ import org.dromara.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; import java.util.Date; import java.io.Serial; @@ -156,12 +158,12 @@ public class BaseMaterialInfo extends TenantEntity { /** * 最大库存数量 */ - private Long maxStockAmount; + private BigDecimal maxStockAmount; /** * 最小库存数量 */ - private Long minStockAmount; + private BigDecimal minStockAmount; /** * 安全库存数量 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/BaseSupplierInfo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/BaseSupplierInfo.java new file mode 100644 index 0000000..c6074ca --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/BaseSupplierInfo.java @@ -0,0 +1,90 @@ +package org.dromara.wms.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.tenant.core.TenantEntity; + +import java.io.Serial; +import java.util.Date; + +/** + * 供应商信息对象 base_supplier_info + * + * @author ZangCH + * @date 2025-01-07 + */ +@Data +@TableName("base_supplier_info") +public class BaseSupplierInfo { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @TableId(value = "supplier_id", type = IdType.AUTO) + private Long supplierId; + + /** + * 供应商编号 + */ + private String supplierCode; + + /** + * 供应商名称 + */ + private String supplierName; + + /** + * erp的主键 + */ + private Long erpId; + + /** + * 激活状态(1启用 0停用) + */ + private String supplierStatus; + + /** + * 审核日期 + */ + private Date auditDate; + + /** + * erp最后更新时间 + */ + private Date erpModifyDate; + + /** + * 备注 + */ + private String remark; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrder.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrder.java new file mode 100644 index 0000000..2eadfef --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrder.java @@ -0,0 +1,130 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 调拨工单对象 wms_allocate_order + * + * @author LionLi + * @date 2025-01-09 + */ +@Data +@TableName("wms_allocate_order") +public class WmsAllocateOrder{ + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @TableId(type = IdType.AUTO) + private Long aoId; + + /** + * 调拨单号 + */ + private String allocateOrderCode; + + /** + * 物料大类 + */ + private String materialCategories; + + /** + * 出库仓库ID + */ + private Long planWarehouseId; + + /** + * 工单状态 + */ + private String orderStatus; + + /** + * 入库仓库ID + */ + private Long targetWarehouseId; + + /** + * 审核人 + */ + private String auditBy; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + private String auditStatus; + + /** + * 审核意见 + */ + private String auditComments; + + /** + * 是否创建出库单 + */ + private String createOut; + + /** + * 出库单号 + */ + private String outCode; + + /** + * 是否创建入库单 + */ + private String createIn; + + /** + * 入库单号 + */ + private String inCode; + + /** + * 入库方式 + */ + private String inMethod; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + @TableField(exist = false) + private String planWarehouseCode; + @TableField(exist = false) + private String targetWarehouseCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java new file mode 100644 index 0000000..1629289 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsAllocateOrderDetail.java @@ -0,0 +1,82 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; + +/** + * 调拨子对象 wms_allocate_order_detail + * + * @author LionLi + * @date 2025-01-09 + */ +@Data +@TableName("wms_allocate_order_detail") +public class WmsAllocateOrderDetail { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 调拨子表主键 + */ + @TableId(type = IdType.AUTO) + private Long aoDId; + + /** + * 调拨单号 + */ + private String allocateCode; + + /** + * 物料id + */ + private Long materialId; + + /** + * 调拨数量 + */ + private Long allocateOrderQty; + + /** + * erp同步状态 + */ + private String erpSynchronousStatus; + + /** + * erp同步数量 + */ + private Long erpSynchronousQty; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + @TableField(exist = false) + private String materialCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsConfiguration.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsConfiguration.java index e7cfa55..014c017 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsConfiguration.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsConfiguration.java @@ -88,6 +88,10 @@ public class WmsConfiguration { @TableField(exist = false) private String warehouseCode;//字段映射 + /** + * 审核人 + */ + private String auditBy; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppInStockDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppInStockDetail.java new file mode 100644 index 0000000..ee215a4 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppInStockDetail.java @@ -0,0 +1,99 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 半制品入库对象 wms_hpp_in_stock_detail + * + * @author LionLi + * @date 2025-01-14 + */ +@Data +@TableName("wms_hpp_in_stock_detail") +public class WmsHppInStockDetail{ + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + private Long objId; + + /** + * 流水卡号 + */ + private String cardNo; + + /** + * 工装架子号 + */ + private String shelfNo; + + /** + * 库位id + */ + private Long storePlaceId; + + /** + * 品级编号,0:合格,1:不合格 + */ + private String gradeCode; + + /** + * 产品类别:0:半成品,1:成型 + */ + private String productCategory; + + /** + * 物料 + */ + private Long materialId; + + /** + * 物料规格 + */ + private String materialSpec; + private String materialCode; + + /** + * 入库类型,0:半制品产出,2:入半制品线边库3:入成型线边库 + */ + private String instockType; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + private BigDecimal instockNum; + @TableField(exist = false) + private String storePlaceCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppOutStockDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppOutStockDetail.java new file mode 100644 index 0000000..0203efd --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppOutStockDetail.java @@ -0,0 +1,89 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; + +/** + * 半成品出库对象 wms_hpp_out_stock_detail + * + * @author LionLi + * @date 2025-01-14 + */ +@Data +@TableName("wms_hpp_out_stock_detail") +public class WmsHppOutStockDetail{ + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(type = IdType.AUTO) + private Long objId; + + /** + * 流水卡号 + */ + private String cardNo; + + /** + * 工装架子号 + */ + private String shelfNo; + + /** + * 库位id + */ + private Long storePlaceId; + + /** + * 品级编号,0:合格,1:不合格 + */ + private String gradeCode; + + /** + * 出库类型 + */ + private String outType; + + /** + * 目的库位 + */ + private Long targetStorePlaceId; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + @TableField(exist = false) + private String storePlaceCode; + @TableField(exist = false) + private String targertStorePlaceCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppStorageDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppStorageDetail.java new file mode 100644 index 0000000..e414f7c --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppStorageDetail.java @@ -0,0 +1,97 @@ +package org.dromara.wms.domain; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import java.io.Serial; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 半成品库存对象 wms_hpp_storage_detail + * + * @author LionLi + * @date 2025-01-14 + */ +@Data +@TableName("wms_hpp_storage_detail") +public class WmsHppStorageDetail { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(type = IdType.AUTO,value = "obj_id") + private Long objId; + + /** + * 流水卡号 + */ + private String cardNo; + + /** + * 工装架子号 + */ + private String shelfNo; + + /** + * 入库类型 + */ + private String instockType; + + /** + * 物料Id + */ + private Long materialId; + + /** + * 库位id + */ + private Long storePlaceId; + + /** + * 密炼来料数量 + */ + private BigDecimal sourceNum; + + /** + * 库存数量 + */ + private BigDecimal storageNum; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + @TableField(exist = false) + private String storePlaceCode; + + private String materialCode; + + private double minParkingTime; + private double maxParkingTime; + @TableField(exist = false) + private Date minTime; + @TableField(exist = false) + private Date maxTime; +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppStore.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppStore.java new file mode 100644 index 0000000..c68ccfd --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppStore.java @@ -0,0 +1,91 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; + +/** + * 【请填写功能名称】对象 wms_hpp_store + * + * @author LionLi + * @date 2025-01-14 + */ +@Data +@TableName("wms_hpp_store") +public class WmsHppStore{ + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(type = IdType.AUTO) + private Long objId; + + /** + * 仓库名 + */ + private String storeName; + + /** + * 仓库代码 + */ + private String storeCode; + + /** + * 仓库类型 + */ + private Long storeType; + + /** + * 使用状态 + */ + private String usedFlag; + + /** + * sap代码 + */ + private String sapCode; + + /** + * 仓库等级 + */ + private String storeLevel; + + /** + * 上级目录 + */ + private String storeHigherLevel; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppStorePlace.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppStorePlace.java new file mode 100644 index 0000000..5fc91f5 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHppStorePlace.java @@ -0,0 +1,85 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; + +/** + * 半成品库位对象 wms_hpp_store_place + * + * @author LionLi + * @date 2025-01-14 + */ +@Data +@TableName("wms_hpp_store_place") +public class WmsHppStorePlace{ + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(type = IdType.AUTO) + private Long objId; + + /** + * 库位名 + */ + private String storePlaceName; + + /** + * 库位代码 + */ + private String storePlaceCode; + + /** + * 仓库id + */ + private Long storeId; + + /** + * 使用状态 + */ + private String usedFlag; + + /** + * 特殊库位 + */ + private String specitialType; + + /** + * 位置类型 + */ + private String positionType; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHsmTooling.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHsmTooling.java new file mode 100644 index 0000000..bd313ca --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsHsmTooling.java @@ -0,0 +1,73 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 半成品工装对象 wms_hsm_tooling + * + * @author LionLi + * @date 2025-01-14 + */ +@Data +@TableName("wms_hsm_tooling") +public class WmsHsmTooling { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + @TableId(type = IdType.AUTO) + private Long objId; + + /** + * $column.columnComment + */ + private String createdBy; + + /** + * $column.columnComment + */ + private Date createdTime; + + /** + * $column.columnComment + */ + private String updatedBy; + + /** + * $column.columnComment + */ + private Date updatedTime; + + /** + * $column.columnComment + */ + private String toolingBarcode; + + /** + * $column.columnComment + */ + private String toolingRfidBarcode; + + /** + * $column.columnComment + */ + private String toolingType; + + /** + * $column.columnComment + */ + private String isUsed; + private String tenantId; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockDetail.java index cd36cd4..8611ff8 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockDetail.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInstockDetail.java @@ -25,6 +25,7 @@ public class WmsInstockDetail{ /** * 入库单子表主键 */ + @TableId(type = IdType.AUTO) private Long instockDetailId; /** diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java index 0fc0d25..74ac0e8 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventory.java @@ -93,6 +93,9 @@ public class WmsInventory{ private Date updateTime; @TableField(exist = false) private String warehouseCode;//字段映射 +// @TableField(exist = false) + private String materialCode;//字段映射 + private String warehouseId; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheck.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheck.java new file mode 100644 index 0000000..5e357bf --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheck.java @@ -0,0 +1,112 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 库存盘点对象 wms_inventory_check + * + * @author LionLi + * @date 2025-01-10 + */ +@Data +@TableName("wms_inventory_check") +public class WmsInventoryCheck { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + private Long inventoryCheckId; + + /** + * 盘点单号 + */ + private String checkCode; + + /** + * 物料大类 + */ + private String materialCategories; + + /** + * 计划仓库ID + */ + private Long planWarehouseId; + + /** + * 盘点类型(1全部,2货架,3物料)) + */ + private String checkType; + + /** + * 盘点状态(0计划,2盘点中,3盘点完成) + */ + private String checkStatus; + + /** + * 审核人 + */ + private String auditBy; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + private String auditStatus; + + /** + * 审核意见 + */ + private String auditComments; + + /** + * 开始时间 + */ + private Date beginTime; + + /** + * 结束时间 + */ + private Date endTime; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + @TableField(exist = false) + private String warehouseCode;//字段映射 + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheckRecord.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheckRecord.java new file mode 100644 index 0000000..29a3db9 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsInventoryCheckRecord.java @@ -0,0 +1,150 @@ +package org.dromara.wms.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 盘点记录和调整工单对象 wms_inventory_check_record + * + * @author LionLi + * @date 2025-01-10 + */ +@Data +@TableName("wms_inventory_check_record") +public class WmsInventoryCheckRecord { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 盘点记录主键 + */ + private Long icRecordId; + + /** + * 物料大类 + */ + private String materialCategories; + + /** + * 盘点单号 + */ + private String checkCode; + + /** + * 批次码 + */ + private String batchCode; + + /** + * 物料id + */ + private Long materialId; + + /** + * 库位编码 + */ + private String locationCode; + + /** + * 物料编码 + */ + private String materialCode; + + /** + * 物料名称 + */ + private String materialName; + + /** + * 库存数量 + */ + private String inventoryQty; + + /** + * 盘点数量 + */ + private Long checkQty; + + /** + * 盘点状态(0异常,1正常) + */ + private String checkStatus; + + /** + * erp同步状态 + */ + private String erpSynchronousStatus; + + /** + * erp同步数量 + */ + private Long erpSynchronousQty; + + /** + * 是否发起调整(0否,1是) + */ + private String isAdjust; + + /** + * 审核人 + */ + private String auditBy; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + private String auditStatus; + + /** + * 审核意见 + */ + private String auditComments; + + /** + * 调整状态(0待执行,1完成) + */ + private String adjustStatus; + + /** + * 调整类型(1库存调整) + */ + private String adjustType; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMoveOrder.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMoveOrder.java new file mode 100644 index 0000000..fbd30b3 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsMoveOrder.java @@ -0,0 +1,117 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 移库工单对象 wms_move_order + * + * @author LionLi + * @date 2025-01-10 + */ +@Data +@TableName("wms_move_order") +public class WmsMoveOrder{ + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + private Long moveId; + + /** + * 物料ID + */ + private Long materialId; + + /** + * 物料大类 + */ + private String materialCategories; + + /** + * 仓库ID + */ + private Long warehouseId; + + /** + * 计划库位 + */ + private String planLocationCode; + + /** + * 工单状态(0执行中,1完成,2关闭) + */ + private String orderStatus; + + /** + * 目标库位 + */ + private String targetLocationCode; + + /** + * 审核人 + */ + private String auditBy; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + private String auditStatus; + + /** + * 审核意见 + */ + private String auditComments; + + /** + * erp同步状态 + */ + private String erpSynchronousStatus; + + /** + * erp同步数量 + */ + private Long erpSynchronousQty; + /** + * 租户id + */ + private String tenantId; + + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + @TableField(fill = FieldFill.INSERT_UPDATE) + private String createBy; + @TableField(exist = false) + private String warehouseCode; + @TableField(exist = false) + private String materialCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockDetail.java index bbb1c76..0fdc394 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockDetail.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockDetail.java @@ -79,8 +79,9 @@ public class WmsOutstockDetail { @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; - @TableField(exist = false) + private String materialCode; + private String materialName; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockRecord.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockRecord.java index ee7c1da..d7bfa7c 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockRecord.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsOutstockRecord.java @@ -1,5 +1,7 @@ package org.dromara.wms.domain; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; +import com.ibm.icu.math.BigDecimal; import org.dromara.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; @@ -55,7 +57,8 @@ public class WmsOutstockRecord extends TenantEntity { /** * 出库数量 */ - private Long outstockQty; + @TableField(typeHandler = JacksonTypeHandler.class) + private java.math.BigDecimal outstockQty; /** * 物料大类 @@ -70,7 +73,8 @@ public class WmsOutstockRecord extends TenantEntity { /** * erp同步数量 */ - private Long erpSynchronousQty; + @TableField(typeHandler = JacksonTypeHandler.class) + private java.math.BigDecimal erpSynchronousQty; /** @@ -84,4 +88,10 @@ public class WmsOutstockRecord extends TenantEntity { private String materialUnit; @TableField(exist = false) private String materialSpec; + + @TableField(exist = false) + private java.math.BigDecimal returnQty; + private String returnFlag; + @TableField(exist = false) + private Long warehouseId; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInLoad.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInLoad.java new file mode 100644 index 0000000..c99c3b4 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInLoad.java @@ -0,0 +1,101 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; + +/** + * 装车架子信息对象 wms_psm_in_load + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@TableName("wms_psm_in_load") +public class WmsPsmInLoad { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @TableId(value = "in_load_id", type = IdType.AUTO) + private Long inLoadId; + + /** + * 装车班次 + */ + private Long loadShift; + + /** + * 装车班组 + */ + private Long loadClass; + + /** + * 工装条码 + */ + private String toolingBarcode; + + /** + * 仓库名称 + */ + private String storeName; + + /** + * 库位条码 + */ + private String storePlaceCode; + + /** + * 物料ID + */ + private Long materialId; + + /** + * 轮胎规格 + */ + private String materialSpe; + + /** + * 品级编号 + */ + private String checkGradeCode; + + /** + * 装载数量 + */ + private int loadAmount; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + private String materialCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInLoadDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInLoadDetail.java new file mode 100644 index 0000000..5ea0764 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInLoadDetail.java @@ -0,0 +1,80 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; + +/** + * 装车架子详细信息对象 wms_psm_in_load_detail + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@TableName("wms_psm_in_load_detail") +public class WmsPsmInLoadDetail{ + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @TableId(type = IdType.AUTO) + private Long objid; + + /** + * 外键 + */ + private Long inLoadId; + + /** + * 物料ID + */ + private Long materialId; + + /** + * 轮胎规格 + */ + private String materialSpe; + + /** + * 硫化条码 + */ + private String tyreNo; + + /** + * 品级编号 + */ + private String checkGradeCode; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInStock.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInStock.java new file mode 100644 index 0000000..eef98ff --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInStock.java @@ -0,0 +1,101 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; + +/** + * 成品入库记录对象 wms_psm_in_stock + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@TableName("wms_psm_in_stock") +public class WmsPsmInStock{ + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @TableId(type = IdType.AUTO,value = "in_stock_id") + private Long inStockId; + + /** + * 入库班组 + */ + private String inClass; + + /** + * 入库班次 + */ + private String inShift; + + /** + * 入库数量 + */ + private Long inAmount; + + /** + * 仓库名称 + */ + private String storeName; + + /** + * 库位条码 + */ + private String storePlaceCode; + + /** + * 工装条码 + */ + private String toolingBarcode; + + /** + * 物料ID + */ + private Long materialId; + + /** + * 轮胎规格 + */ + private String materialSpe; + + /** + * 品级编号 + */ + private String checkGradeCode; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInStockDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInStockDetail.java new file mode 100644 index 0000000..e41f4ac --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmInStockDetail.java @@ -0,0 +1,79 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; + +/** + * 成品入库对象 wms_psm_in_stock_detail + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@TableName("wms_psm_in_stock_detail") +public class WmsPsmInStockDetail{ + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long objid; + + /** + * 外键关联in_load表主键id + */ + private Long inStockId; + + /** + * 物料id + */ + private Long materialId; + + /** + * 物料规格 + */ + private String materialSpe; + + /** + * 硫化条码 + */ + private String tyreNo; + + /** + * 品级编号 + */ + private String checkGradeCode; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmStorage.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmStorage.java new file mode 100644 index 0000000..a511197 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmStorage.java @@ -0,0 +1,90 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; + +/** + * 成品库存对象 wms_psm_storage + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@TableName("wms_psm_storage") +public class WmsPsmStorage{ + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + private Long objid; + + /** + * 物料ID + */ + private Long materialId; + + /** + * 轮胎规格 + */ + private String materialSpe; + + /** + * 硫化条码 + */ + private String tyreNo; + + /** + * 品级编号 + */ + private String checkGradeCode; + + /** + * 仓库名称 + */ + private String storeName; + + /** + * 库位条码 + */ + private String storePlaceCode; + + /** + * 工装条码 + */ + private String toolingBarcode; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + private String materialCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmStore.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmStore.java new file mode 100644 index 0000000..c036884 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmStore.java @@ -0,0 +1,73 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; + +/** + * 成品仓库管理对象 wms_psm_store + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@TableName("wms_psm_store") +public class WmsPsmStore{ + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @TableId(type = IdType.AUTO) + private Long storeId; + + /** + * 仓库名称 + */ + private String storeName; + + /** + * 仓库编码 + */ + private String storeCode; + + /** + * 仓库类型 + */ + private Long storeTypeId; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + @TableField(exist = false) + private String storeTypeCode; + + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmStorePlace.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmStorePlace.java new file mode 100644 index 0000000..1d56067 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmStorePlace.java @@ -0,0 +1,78 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; + +/** + * 成品库位管理对象 wms_psm_store_place + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@TableName("wms_psm_store_place") +public class WmsPsmStorePlace { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @TableId(type = IdType.AUTO) + private Long storePlaceId; + + /** + * 库位编码 + */ + private String storePlaceCode; + + /** + * 库位名称 + */ + private String storePlaceName; + + /** + * 所属仓库 + */ + private Long storeId; + + /** + * sap库区代码 + */ + private String sapCode; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + @TableField(exist = false) + private String storeCode; + + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmStoreType.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmStoreType.java new file mode 100644 index 0000000..d83aef8 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPsmStoreType.java @@ -0,0 +1,75 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.util.Date; + +/** + * 成品仓库类型对象 wms_psm_store_type + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@TableName("wms_psm_store_type") +public class WmsPsmStoreType { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @TableId(type = IdType.AUTO) + private Long storeTypeId; + + /** + * 仓库类型代码 + */ + private String storeTypeCode; + + /** + * 仓库类型名称 + */ + private String storeTypeName; + + /** + * 存放品级编号 + */ + private String checkGradeCode; + + /** + * 存放品级名称 + */ + private String checkGradeName; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrder.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrder.java new file mode 100644 index 0000000..957fc86 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrder.java @@ -0,0 +1,122 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 采购订单对象 wms_purchase_order + * + * @author ZangCH + * @date 2025-01-08 + */ +@Data +@TableName("wms_purchase_order") +public class WmsPurchaseOrder { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @TableId(value = "po_id", type = IdType.AUTO) + private Long poId; + + /** + * 订单编号 + */ + private String poNo; + + /** + * 订单状态(1待采购2部分到货3订单完成) + */ + private String poStatus; + + /** + * 计划交货日期 + */ + private String planDeliveryDate; + + /** + * 供应商ID + */ + private Long supplierId; + + /** + * 订单类型(1人工创建,2ERP同步,3后台创建4) + */ + private String poType; + + /** + * 单据的ID,连表扩充 + */ + private Long erpId; + + /** + * 备注 + */ + private String remark; + + /** + * 物料大类 + */ + private String materialCategories; + + /** + * 审核人 + */ + private String auditBy; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + private String auditStatus; + + /** + * 审核意见 + */ + private String auditComments; + /** + * 供应商编号 + */ + @TableField(exist = false) + private String supplierCode; + + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrderDetail.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrderDetail.java new file mode 100644 index 0000000..d8b9b4a --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsPurchaseOrderDetail.java @@ -0,0 +1,74 @@ +package org.dromara.wms.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.math.BigDecimal; + +/** + * 采购订单-物料对象 wms_purchase_order_detail + * + * @author ZangCH + * @date 2025-01-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("wms_purchase_order_detail") +public class WmsPurchaseOrderDetail extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 采购物料表主键 + */ + @TableId(value = "po_d_id", type = IdType.AUTO) + private Long poDId; + + /** + * 物料编码 + */ + private String materialCode; + + /** + * 物料名称 + */ + private String materialName; + + /** + * 采购订单编号 + */ + private String poNo; + + /** + * 含税单价 + */ + private BigDecimal taxPrice; + + /** + * 采购数量 + */ + private BigDecimal purchaseQty; + + /** + * 物料规格 + */ + private String materialSpe; + + /** + * 计量单位名称 + */ + private String unitName; + + /** + * 送货数量=送货单数量=总入库数量 + */ + private BigDecimal deliveryQty; + + private Long materialId; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsReturnOrder.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsReturnOrder.java index 7c24b1e..3b0e085 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsReturnOrder.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/WmsReturnOrder.java @@ -4,6 +4,8 @@ import org.dromara.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; @@ -45,7 +47,7 @@ public class WmsReturnOrder { /** * 计划数量 */ - private Long planAmount; + private BigDecimal planAmount; /** * 仓库ID @@ -65,7 +67,7 @@ public class WmsReturnOrder { /** * 实际数量 */ - private Long returnAmount; + private BigDecimal returnAmount; /** * 实际退库库位 @@ -127,5 +129,8 @@ public class WmsReturnOrder { private Date updateTime; @TableField(exist = false) private String warehouseCode;//字段映射 + @TableField(exist = false) + private String materialCode; + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/BaseMaterialInfoBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/BaseMaterialInfoBo.java index a28ef9d..7705c84 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/BaseMaterialInfoBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/BaseMaterialInfoBo.java @@ -8,6 +8,8 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; + +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; @@ -158,12 +160,12 @@ public class BaseMaterialInfoBo extends BaseEntity { /** * 最大库存数量 */ - private Long maxStockAmount; + private BigDecimal maxStockAmount; /** * 最小库存数量 */ - private Long minStockAmount; + private BigDecimal minStockAmount; /** * 安全库存数量 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateOrderBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateOrderBo.java new file mode 100644 index 0000000..a843393 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateOrderBo.java @@ -0,0 +1,119 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.wms.domain.WmsAllocateOrder; + +/** + * 调拨工单业务对象 wms_allocate_order + * + * @author LionLi + * @date 2025-01-09 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsAllocateOrder.class, reverseConvertGenerate = false) +public class WmsAllocateOrderBo extends BaseEntity { + + /** + * 表主键 + */ +// @NotNull(message = "表主键不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long aoId; + + /** + * 调拨单号 + */ +// @NotBlank(message = "调拨单号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String allocateOrderCode; + + /** + * 物料大类 + */ +// @NotBlank(message = "物料大类不能为空", groups = { AddGroup.class, EditGroup.class }) + private String materialCategories; + + /** + * 出库仓库ID + */ +// @NotNull(message = "出库仓库ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long planWarehouseId; + + /** + * 工单状态 + */ +// @NotBlank(message = "工单状态不能为空", groups = { AddGroup.class, EditGroup.class }) + private String orderStatus; + + /** + * 入库仓库ID + */ +// @NotNull(message = "入库仓库ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long targetWarehouseId; + + /** + * 审核人 + */ +// @NotBlank(message = "审核人不能为空", groups = { AddGroup.class, EditGroup.class }) + private String auditBy; + + /** + * 审核时间 + */ +// @NotNull(message = "审核时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ +// @NotBlank(message = "审核状态(0待审核,1审核通过,2审核未通过)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String auditStatus; + + /** + * 审核意见 + */ +// @NotBlank(message = "审核意见不能为空", groups = { AddGroup.class, EditGroup.class }) + private String auditComments; + + /** + * 是否创建出库单 + */ +// @NotBlank(message = "是否创建出库单不能为空", groups = { AddGroup.class, EditGroup.class }) + private String createOut; + + /** + * 出库单号 + */ +// @NotBlank(message = "出库单号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String outCode; + + /** + * 是否创建入库单 + */ +// @NotBlank(message = "是否创建入库单不能为空", groups = { AddGroup.class, EditGroup.class }) + private String createIn; + + /** + * 入库单号 + */ +// @NotBlank(message = "入库单号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String inCode; + + /** + * 入库方式 + */ +// @NotBlank(message = "入库方式不能为空", groups = { AddGroup.class, EditGroup.class }) + private String inMethod; + private String tenantId; + private String planWarehouseCode; + private String targetWarehouseCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateOrderDetailBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateOrderDetailBo.java new file mode 100644 index 0000000..a9154a9 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsAllocateOrderDetailBo.java @@ -0,0 +1,61 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.wms.domain.WmsAllocateOrderDetail; + +/** + * 调拨子业务对象 wms_allocate_order_detail + * + * @author LionLi + * @date 2025-01-09 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsAllocateOrderDetail.class, reverseConvertGenerate = false) +public class WmsAllocateOrderDetailBo extends BaseEntity { + + /** + * 调拨子表主键 + */ +// @NotNull(message = "调拨子表主键不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long aoDId; + + /** + * 调拨单号 + */ +// @NotBlank(message = "调拨单号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String allocateCode; + + /** + * 物料id + */ +// @NotNull(message = "物料id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long materialId; + + /** + * 调拨数量 + */ +// @NotNull(message = "调拨数量不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long allocateOrderQty; + + /** + * erp同步状态 + */ +// @NotBlank(message = "erp同步状态不能为空", groups = { AddGroup.class, EditGroup.class }) + private String erpSynchronousStatus; + + /** + * erp同步数量 + */ +// @NotNull(message = "erp同步数量不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long erpSynchronousQty; + private String tenantId; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsConfigurationBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsConfigurationBo.java index 8acefc6..06be7de 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsConfigurationBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsConfigurationBo.java @@ -72,6 +72,10 @@ public class WmsConfigurationBo extends BaseEntity { * 租户id */ private String tenantId; + /** + * 审核人 + */ + private String auditBy; diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppInStockDetailBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppInStockDetailBo.java new file mode 100644 index 0000000..154c427 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppInStockDetailBo.java @@ -0,0 +1,87 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.wms.domain.WmsHppInStockDetail; + +import java.math.BigDecimal; + +/** + * 半制品入库业务对象 wms_hpp_in_stock_detail + * + * @author LionLi + * @date 2025-01-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsHppInStockDetail.class, reverseConvertGenerate = false) +public class WmsHppInStockDetailBo extends BaseEntity { + + /** + * 主键id + */ + @NotNull(message = "主键id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long objId; + + /** + * 流水卡号 + */ + @NotBlank(message = "流水卡号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String cardNo; + + /** + * 工装架子号 + */ + @NotBlank(message = "工装架子号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String shelfNo; + + /** + * 库位id + */ + @NotNull(message = "库位id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long storePlaceId; + + /** + * 品级编号,0:合格,1:不合格 + */ + @NotBlank(message = "品级编号,0:合格,1:不合格不能为空", groups = { AddGroup.class, EditGroup.class }) + private String gradeCode; + + /** + * 产品类别:0:半成品,1:成型 + */ + @NotBlank(message = "产品类别:0:半成品,1:成型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String productCategory; + + /** + * 物料 + */ + @NotNull(message = "物料不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long materialId; + + /** + * 物料规格 + */ + @NotBlank(message = "物料规格不能为空", groups = { AddGroup.class, EditGroup.class }) + private String materialSpec; + private String materialCode; + + /** + * 入库类型,0:半制品产出,2:入半制品线边库3:入成型线边库 + */ + @NotBlank(message = "入库类型,0:半制品产出,2:入半制品线边库3:入成型线边库不能为空", groups = { AddGroup.class, EditGroup.class }) + private String instockType; + + private BigDecimal instockNum; + + private String storePlaceCode; + + private String unitName; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppOutStockDetailBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppOutStockDetailBo.java new file mode 100644 index 0000000..8b82f8b --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppOutStockDetailBo.java @@ -0,0 +1,66 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.wms.domain.WmsHppOutStockDetail; + +/** + * 半成品出库业务对象 wms_hpp_out_stock_detail + * + * @author LionLi + * @date 2025-01-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsHppOutStockDetail.class, reverseConvertGenerate = false) +public class WmsHppOutStockDetailBo extends BaseEntity { + + /** + * 主键id + */ + @NotNull(message = "主键id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long objId; + + /** + * 流水卡号 + */ + @NotBlank(message = "流水卡号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String cardNo; + + /** + * 工装架子号 + */ + @NotBlank(message = "工装架子号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String shelfNo; + + /** + * 库位id + */ + @NotNull(message = "库位id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long storePlaceId; + + /** + * 品级编号,0:合格,1:不合格 + */ + @NotBlank(message = "品级编号,0:合格,1:不合格不能为空", groups = { AddGroup.class, EditGroup.class }) + private String gradeCode; + + /** + * 出库类型 + */ + @NotBlank(message = "出库类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String outType; + + /** + * 目的库位 + */ + @NotNull(message = "目的库位不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long targetStorePlaceId; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppStorageDetailBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppStorageDetailBo.java new file mode 100644 index 0000000..6ea1d10 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppStorageDetailBo.java @@ -0,0 +1,75 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.wms.domain.WmsHppStorageDetail; + +import java.math.BigDecimal; + +/** + * 半成品库存业务对象 wms_hpp_storage_detail + * + * @author LionLi + * @date 2025-01-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsHppStorageDetail.class, reverseConvertGenerate = false) +public class WmsHppStorageDetailBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long objId; + + /** + * 流水卡号 + */ + @NotBlank(message = "流水卡号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String cardNo; + + /** + * 工装架子号 + */ + @NotBlank(message = "工装架子号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String shelfNo; + + /** + * 入库类型 + */ + @NotBlank(message = "入库类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String instockType; + + /** + * 物料Id + */ + @NotNull(message = "物料Id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long materialId; + + /** + * 库位id + */ + @NotNull(message = "库位id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long storePlaceId; + + /** + * 密炼来料数量 + */ + @NotNull(message = "密炼来料数量不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal sourceNum; + + /** + * 库存数量 + */ + @NotNull(message = "库存数量不能为空", groups = { AddGroup.class, EditGroup.class }) + private BigDecimal storageNum; + private String materialCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppStoreBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppStoreBo.java new file mode 100644 index 0000000..25192d7 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppStoreBo.java @@ -0,0 +1,72 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.wms.domain.WmsHppStore; + +/** + * 【请填写功能名称】业务对象 wms_hpp_store + * + * @author LionLi + * @date 2025-01-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsHppStore.class, reverseConvertGenerate = false) +public class WmsHppStoreBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long objId; + + /** + * 仓库名 + */ + @NotBlank(message = "仓库名不能为空", groups = { AddGroup.class, EditGroup.class }) + private String storeName; + + /** + * 仓库代码 + */ + @NotBlank(message = "仓库代码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String storeCode; + + /** + * 仓库类型 + */ + @NotNull(message = "仓库类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long storeType; + + /** + * 使用状态 + */ + @NotBlank(message = "使用状态不能为空", groups = { AddGroup.class, EditGroup.class }) + private String usedFlag; + + /** + * sap代码 + */ + @NotBlank(message = "sap代码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String sapCode; + + /** + * 仓库等级 + */ + @NotNull(message = "仓库等级不能为空", groups = { AddGroup.class, EditGroup.class }) + private String storeLevel; + + /** + * 上级目录 + */ + @NotNull(message = "上级目录不能为空", groups = { AddGroup.class, EditGroup.class }) + private String storeHigherLevel; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppStorePlaceBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppStorePlaceBo.java new file mode 100644 index 0000000..fea15f0 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHppStorePlaceBo.java @@ -0,0 +1,66 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.wms.domain.WmsHppStorePlace; + +/** + * 半成品库位业务对象 wms_hpp_store_place + * + * @author LionLi + * @date 2025-01-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsHppStorePlace.class, reverseConvertGenerate = false) +public class WmsHppStorePlaceBo extends BaseEntity { + + /** + * 主键id + */ + @NotNull(message = "主键id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long objId; + + /** + * 库位名 + */ + @NotBlank(message = "库位名不能为空", groups = { AddGroup.class, EditGroup.class }) + private String storePlaceName; + + /** + * 库位代码 + */ + @NotBlank(message = "库位代码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String storePlaceCode; + + /** + * 仓库id + */ + @NotNull(message = "仓库id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long storeId; + + /** + * 使用状态 + */ + @NotBlank(message = "使用状态不能为空", groups = { AddGroup.class, EditGroup.class }) + private String usedFlag; + + /** + * 特殊库位 + */ + @NotBlank(message = "特殊库位不能为空", groups = { AddGroup.class, EditGroup.class }) + private String specitialType; + + /** + * 位置类型 + */ + @NotBlank(message = "位置类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private String positionType; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHsmToolingBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHsmToolingBo.java new file mode 100644 index 0000000..deee16c --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsHsmToolingBo.java @@ -0,0 +1,84 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.wms.domain.WmsHsmTooling; + +/** + * 半成品工装业务对象 wms_hsm_tooling + * + * @author LionLi + * @date 2025-01-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsHsmTooling.class, reverseConvertGenerate = false) +public class WmsHsmToolingBo extends BaseEntity { + + /** + * $column.columnComment + */ + @NotNull(message = "$column.columnComment不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long objId; + + /** + * $column.columnComment + */ + @NotBlank(message = "$column.columnComment不能为空", groups = { AddGroup.class, EditGroup.class }) + private String createdBy; + + /** + * $column.columnComment + */ + @NotNull(message = "$column.columnComment不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date createdTime; + + /** + * $column.columnComment + */ + @NotBlank(message = "$column.columnComment不能为空", groups = { AddGroup.class, EditGroup.class }) + private String updatedBy; + + /** + * $column.columnComment + */ + @NotNull(message = "$column.columnComment不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date updatedTime; + + /** + * $column.columnComment + */ + @NotBlank(message = "$column.columnComment不能为空", groups = { AddGroup.class, EditGroup.class }) + private String toolingBarcode; + + /** + * $column.columnComment + */ + @NotBlank(message = "$column.columnComment不能为空", groups = { AddGroup.class, EditGroup.class }) + private String toolingRfidBarcode; + + /** + * $column.columnComment + */ + @NotBlank(message = "$column.columnComment不能为空", groups = { AddGroup.class, EditGroup.class }) + private String toolingType; + + /** + * $column.columnComment + */ + @NotBlank(message = "$column.columnComment不能为空", groups = { AddGroup.class, EditGroup.class }) + private String isUsed; + /** + * 租户id + */ + private String tenantId; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryBo.java index 4bb13e1..d1fd96c 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryBo.java @@ -76,5 +76,7 @@ public class WmsInventoryBo extends BaseEntity { @NotNull(message = "仓库ID不能为空", groups = { AddGroup.class, EditGroup.class }) private Long storeId; private String tenantId; + private String warehouseId; + private String materialCode;//字段映射 } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryCheckBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryCheckBo.java new file mode 100644 index 0000000..efe492d --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryCheckBo.java @@ -0,0 +1,92 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.wms.domain.WmsInventoryCheck; + +/** + * 库存盘点业务对象 wms_inventory_check + * + * @author LionLi + * @date 2025-01-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsInventoryCheck.class, reverseConvertGenerate = false) +public class WmsInventoryCheckBo extends BaseEntity { + + /** + * 表主键 + */ + + private Long inventoryCheckId; + + /** + * 盘点单号 + */ + + private String checkCode; + + /** + * 物料大类 + */ + + private String materialCategories; + + /** + * 计划仓库ID + */ + + private Long planWarehouseId; + + /** + * 盘点类型(1全部,2货架,3物料)) + */ + private String checkType; + + /** + * 盘点状态(0计划,2盘点中,3盘点完成) + */ + private String checkStatus; + + /** + * 审核人 + */ + private String auditBy; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + private String auditStatus; + + /** + * 审核意见 + */ + private String auditComments; + + /** + * 开始时间 + */ + private Date beginTime; + + /** + * 结束时间 + */ + private Date endTime; + private String tenantId; + + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryCheckRecordBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryCheckRecordBo.java new file mode 100644 index 0000000..1146dc2 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsInventoryCheckRecordBo.java @@ -0,0 +1,132 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.wms.domain.WmsInventoryCheckRecord; + +/** + * 盘点记录和调整工单业务对象 wms_inventory_check_record + * + * @author LionLi + * @date 2025-01-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsInventoryCheckRecord.class, reverseConvertGenerate = false) +public class WmsInventoryCheckRecordBo extends BaseEntity { + + /** + * 盘点记录主键 + */ + private Long icRecordId; + + /** + * 物料大类 + */ + private String materialCategories; + + /** + * 盘点单号 + */ + private String checkCode; + + /** + * 批次码 + */ + private String batchCode; + + /** + * 物料id + */ + private Long materialId; + + /** + * 库位编码 + */ + private String locationCode; + + /** + * 物料编码 + */ + private String materialCode; + + /** + * 物料名称 + */ + private String materialName; + + /** + * 库存数量 + */ + private String inventoryQty; + + /** + * 盘点数量 + */ + private Long checkQty; + + /** + * 盘点状态(0异常,1正常) + */ + private String checkStatus; + + /** + * erp同步状态 + */ + private String erpSynchronousStatus; + + /** + * erp同步数量 + */ + private Long erpSynchronousQty; + + /** + * 是否发起调整(0否,1是) + */ + private String isAdjust; + + /** + * 审核人 + */ + + private String auditBy; + + /** + * 审核时间 + */ + + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + + private String auditStatus; + + /** + * 审核意见 + */ + + private String auditComments; + + /** + * 调整状态(0待执行,1完成) + */ + + private String adjustStatus; + + /** + * 调整类型(1库存调整) + */ + + private String adjustType; + private String tenantId; + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsMoveOrderBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsMoveOrderBo.java new file mode 100644 index 0000000..af99c2d --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsMoveOrderBo.java @@ -0,0 +1,95 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.wms.domain.WmsMoveOrder; + +/** + * 移库工单业务对象 wms_move_order + * + * @author LionLi + * @date 2025-01-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsMoveOrder.class, reverseConvertGenerate = false) +public class WmsMoveOrderBo extends BaseEntity { + + /** + * 表主键 + */ + private Long moveId; + + /** + * 物料ID + */ + private Long materialId; + + /** + * 物料大类 + */ + private String materialCategories; + + /** + * 仓库ID + */ + private Long warehouseId; + + /** + * 计划库位 + */ + private String planLocationCode; + + /** + * 工单状态(0执行中,1完成,2关闭) + */ + private String orderStatus; + + /** + * 目标库位 + */ + private String targetLocationCode; + + /** + * 审核人 + */ + private String auditBy; +// private String updateBy; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + private String auditStatus; + + /** + * 审核意见 + */ + private String auditComments; + + /** + * erp同步状态 + */ + private String erpSynchronousStatus; + + /** + * erp同步数量 + */ + private Long erpSynchronousQty; + private String tenantId; + private String warehouseCode; + private String materialCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockDetailBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockDetailBo.java index 19e97c0..0509a14 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockDetailBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockDetailBo.java @@ -57,6 +57,9 @@ public class WmsOutstockDetailBo extends BaseEntity { // @NotBlank(message = "物料大类不能为空", groups = { AddGroup.class, EditGroup.class }) private String materialCategories; private String tenantId; + private String materialCode; + + private String materialName; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockRecordBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockRecordBo.java index ff945cf..e8bd1f9 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockRecordBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsOutstockRecordBo.java @@ -1,5 +1,6 @@ package org.dromara.wms.domain.bo; +import com.ibm.icu.math.BigDecimal; import org.dromara.wms.domain.WmsOutstockRecord; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; @@ -53,7 +54,7 @@ public class WmsOutstockRecordBo extends BaseEntity { /** * 出库数量 */ - private Long outstockQty; + private java.math.BigDecimal outstockQty; /** * 物料大类 @@ -68,7 +69,10 @@ public class WmsOutstockRecordBo extends BaseEntity { /** * erp同步数量 */ - private Long erpSynchronousQty; + private java.math.BigDecimal erpSynchronousQty; + private java.math.BigDecimal returnQty; + private String returnFlag; + private String returnLocationCode; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmInLoadBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmInLoadBo.java new file mode 100644 index 0000000..7b2f880 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmInLoadBo.java @@ -0,0 +1,86 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.wms.domain.WmsPsmInLoad; + +/** + * 装车架子信息业务对象 wms_psm_in_load + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsPsmInLoad.class, reverseConvertGenerate = false) +public class WmsPsmInLoadBo extends BaseEntity { + + /** + * 表主键 + */ + // @NotNull(message = "表主键不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long inLoadId; + + /** + * 装车班次 + */ + // @NotNull(message = "装车班次不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long loadShift; + + /** + * 装车班组 + */ + // @NotNull(message = "装车班组不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long loadClass; + + /** + * 工装条码 + */ + // @NotBlank(message = "工装条码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String toolingBarcode; + + /** + * 仓库名称 + */ + // @NotBlank(message = "仓库名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String storeName; + + /** + * 库位条码 + */ + // @NotBlank(message = "库位条码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String storePlaceCode; + + /** + * 物料ID + */ + // @NotNull(message = "物料ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long materialId; + + /** + * 轮胎规格 + */ + // @NotBlank(message = "轮胎规格不能为空", groups = { AddGroup.class, EditGroup.class }) + private String materialSpe; + + /** + * 品级编号 + */ + // @NotBlank(message = "品级编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String checkGradeCode; + + /** + * 装载数量 + */ + @NotNull(message = "装载数量不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long loadAmount; + private String materialCode; + private String tenantId; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmInLoadDetailBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmInLoadDetailBo.java new file mode 100644 index 0000000..ab86139 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmInLoadDetailBo.java @@ -0,0 +1,61 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.wms.domain.WmsPsmInLoadDetail; + +/** + * 装车架子详细信息业务对象 wms_psm_in_load_detail + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsPsmInLoadDetail.class, reverseConvertGenerate = false) +public class WmsPsmInLoadDetailBo extends BaseEntity { + + /** + * 表主键 + */ + @NotNull(message = "表主键不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long objid; + + /** + * 外键 + */ + @NotNull(message = "外键不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long inLoadId; + + /** + * 物料ID + */ + @NotNull(message = "物料ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long materialId; + + /** + * 轮胎规格 + */ + @NotBlank(message = "轮胎规格不能为空", groups = { AddGroup.class, EditGroup.class }) + private String materialSpe; + + /** + * 硫化条码 + */ + @NotBlank(message = "硫化条码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String tyreNo; + + /** + * 品级编号 + */ + @NotBlank(message = "品级编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String checkGradeCode; + private String tenantId; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmInStockBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmInStockBo.java new file mode 100644 index 0000000..000bded --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmInStockBo.java @@ -0,0 +1,87 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.wms.domain.WmsPsmInStock; + +/** + * 成品入库记录业务对象 wms_psm_in_stock + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsPsmInStock.class, reverseConvertGenerate = false) +public class WmsPsmInStockBo extends BaseEntity { + + /** + * 表主键 + */ + @NotNull(message = "表主键不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long inStockId; + + /** + * 入库班组 + */ + @NotBlank(message = "入库班组不能为空", groups = { AddGroup.class, EditGroup.class }) + private String inClass; + + /** + * 入库班次 + */ + @NotBlank(message = "入库班次不能为空", groups = { AddGroup.class, EditGroup.class }) + private String inShift; + + /** + * 入库数量 + */ + @NotNull(message = "入库数量不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long inAmount; + + /** + * 仓库名称 + */ + @NotBlank(message = "仓库名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String storeName; + + /** + * 库位条码 + */ + @NotBlank(message = "库位条码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String storePlaceCode; + + /** + * 工装条码 + */ + @NotBlank(message = "工装条码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String toolingBarcode; + + /** + * 物料ID + */ + @NotNull(message = "物料ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long materialId; + + /** + * 轮胎规格 + */ + @NotBlank(message = "轮胎规格不能为空", groups = { AddGroup.class, EditGroup.class }) + private String materialSpe; + + /** + * 品级编号 + */ + @NotBlank(message = "品级编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String checkGradeCode; + /** + * 租户id + */ + private String tenantId; + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmInStockDetailBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmInStockDetailBo.java new file mode 100644 index 0000000..d7a4346 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmInStockDetailBo.java @@ -0,0 +1,65 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.wms.domain.WmsPsmInStockDetail; + +/** + * 成品入库业务对象 wms_psm_in_stock_detail + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsPsmInStockDetail.class, reverseConvertGenerate = false) +public class WmsPsmInStockDetailBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long objid; + + /** + * 外键关联in_load表主键id + */ + @NotNull(message = "外键关联in_load表主键id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long inStockId; + + /** + * 物料id + */ + @NotNull(message = "物料id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long materialId; + + /** + * 物料规格 + */ + @NotBlank(message = "物料规格不能为空", groups = { AddGroup.class, EditGroup.class }) + private String materialSpe; + + /** + * 硫化条码 + */ + @NotBlank(message = "硫化条码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String tyreNo; + + /** + * 品级编号 + */ + @NotBlank(message = "品级编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String checkGradeCode; + + /** + * 租户id + */ + private String tenantId; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmStorageBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmStorageBo.java new file mode 100644 index 0000000..336b4a3 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmStorageBo.java @@ -0,0 +1,74 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.wms.domain.WmsPsmStorage; + +/** + * 成品库存业务对象 wms_psm_storage + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsPsmStorage.class, reverseConvertGenerate = false) +public class WmsPsmStorageBo extends BaseEntity { + + /** + * 表主键 + */ + @NotNull(message = "表主键不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long objid; + + /** + * 物料ID + */ + @NotNull(message = "物料ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long materialId; + + /** + * 轮胎规格 + */ + @NotBlank(message = "轮胎规格不能为空", groups = { AddGroup.class, EditGroup.class }) + private String materialSpe; + + /** + * 硫化条码 + */ + @NotBlank(message = "硫化条码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String tyreNo; + + /** + * 品级编号 + */ + @NotBlank(message = "品级编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String checkGradeCode; + + /** + * 仓库名称 + */ + @NotBlank(message = "仓库名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String storeName; + + /** + * 库位条码 + */ + @NotBlank(message = "库位条码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String storePlaceCode; + + /** + * 工装条码 + */ + @NotBlank(message = "工装条码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String toolingBarcode; + private String tenantId; + private String materialCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmStoreBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmStoreBo.java new file mode 100644 index 0000000..56e1ec2 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmStoreBo.java @@ -0,0 +1,49 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.wms.domain.WmsPsmStore; + +/** + * 成品仓库管理业务对象 wms_psm_store + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsPsmStore.class, reverseConvertGenerate = false) +public class WmsPsmStoreBo extends BaseEntity { + + /** + * 表主键 + */ + @NotNull(message = "表主键不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long storeId; + + /** + * 仓库名称 + */ + @NotBlank(message = "仓库名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String storeName; + + /** + * 仓库编码 + */ + @NotBlank(message = "仓库编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String storeCode; + + /** + * 仓库类型 + */ + @NotNull(message = "仓库类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long storeTypeId; + private String tenantId; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmStorePlaceBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmStorePlaceBo.java new file mode 100644 index 0000000..1489d8b --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmStorePlaceBo.java @@ -0,0 +1,57 @@ +package org.dromara.wms.domain.bo; + + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.wms.domain.WmsPsmStorePlace; + +/** + * 成品库位管理业务对象 wms_psm_store_place + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsPsmStorePlace.class, reverseConvertGenerate = false) +public class WmsPsmStorePlaceBo extends BaseEntity { + + /** + * 表主键 + */ + @NotNull(message = "表主键不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long storePlaceId; + + /** + * 库位编码 + */ + @NotBlank(message = "库位编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String storePlaceCode; + + /** + * 库位名称 + */ + @NotBlank(message = "库位名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String storePlaceName; + + /** + * 所属仓库 + */ + @NotNull(message = "所属仓库不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long storeId; + + /** + * sap库区代码 + */ + @NotBlank(message = "sap库区代码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String sapCode; + + private String tenantId; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmStoreTypeBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmStoreTypeBo.java new file mode 100644 index 0000000..d4b92db --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPsmStoreTypeBo.java @@ -0,0 +1,55 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import org.dromara.wms.domain.WmsPsmStoreType; + +/** + * 成品仓库类型业务对象 wms_psm_store_type + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsPsmStoreType.class, reverseConvertGenerate = false) +public class WmsPsmStoreTypeBo extends BaseEntity { + + /** + * 表主键 + */ + @NotNull(message = "表主键不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long storeTypeId; + + /** + * 仓库类型代码 + */ + @NotBlank(message = "仓库类型代码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String storeTypeCode; + + /** + * 仓库类型名称 + */ + @NotBlank(message = "仓库类型名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String storeTypeName; + + /** + * 存放品级编号 + */ + @NotBlank(message = "存放品级编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String checkGradeCode; + + /** + * 存放品级名称 + */ + @NotBlank(message = "存放品级名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String checkGradeName; + private String tenantId; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderBo.java new file mode 100644 index 0000000..3387cd7 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderBo.java @@ -0,0 +1,92 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.wms.domain.WmsPurchaseOrder; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 采购订单业务对象 wms_purchase_order + * + * @author ZangCH + * @date 2025-01-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsPurchaseOrder.class, reverseConvertGenerate = false) +public class WmsPurchaseOrderBo extends BaseEntity { + + /** + * 表主键 + */ + private Long poId; + + /** + * 订单编号 + */ + @NotBlank(message = "订单编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String poNo; + + /** + * 订单状态(1待采购2部分到货3订单完成) + */ + private String poStatus; + + /** + * 计划交货日期 + */ + private String planDeliveryDate; + + /** + * 供应商ID + */ + private Long supplierId; + + /** + * 订单类型(1人工创建,2ERP同步,3后台创建4) + */ + private String poType; + + /** + * 单据的ID,连表扩充 + */ + private Long erpId; + + /** + * 备注 + */ + private String remark; + + /** + * 物料大类 + */ + private String materialCategories; + + /** + * 审核人 + */ + private String auditBy; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + private String auditStatus; + + /** + * 审核意见 + */ + private String auditComments; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderDetailBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderDetailBo.java new file mode 100644 index 0000000..e7edf92 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsPurchaseOrderDetailBo.java @@ -0,0 +1,76 @@ +package org.dromara.wms.domain.bo; + +import org.dromara.wms.domain.WmsPurchaseOrderDetail; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +import java.math.BigDecimal; + +/** + * 采购订单-物料业务对象 wms_purchase_order_detail + * + * @author ZangCH + * @date 2025-01-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = WmsPurchaseOrderDetail.class, reverseConvertGenerate = false) +public class WmsPurchaseOrderDetailBo extends BaseEntity { + + /** + * 采购物料表主键 + */ + private Long poDId; + + /** + * 物料编码 + */ + @NotBlank(message = "物料编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String materialCode; + + /** + * 物料名称 + */ + @NotBlank(message = "物料名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String materialName; + + /** + * 采购订单编号 + */ + @NotBlank(message = "采购订单编号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String poNo; + + /** + * 含税单价 + */ + private BigDecimal taxPrice; + + /** + * 采购数量 + */ + private BigDecimal purchaseQty; + + /** + * 物料规格 + */ + private String materialSpe; + + /** + * 计量单位名称 + */ + private String unitName; + + /** + * 送货数量=送货单数量=总入库数量 + */ + private BigDecimal deliveryQty; + + private Long materialId; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsReturnOrderBo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsReturnOrderBo.java index 3bb0946..9a58663 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsReturnOrderBo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/bo/WmsReturnOrderBo.java @@ -1,5 +1,6 @@ package org.dromara.wms.domain.bo; +import com.baomidou.mybatisplus.annotation.TableField; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; @@ -7,6 +8,8 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; + +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import org.dromara.wms.domain.WmsReturnOrder; @@ -49,7 +52,7 @@ public class WmsReturnOrderBo extends BaseEntity{ * 计划数量 */ // @NotNull(message = "计划数量不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long planAmount; + private BigDecimal planAmount; /** * 仓库ID @@ -73,7 +76,7 @@ public class WmsReturnOrderBo extends BaseEntity{ * 实际数量 */ // @NotNull(message = "实际数量不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long returnAmount; + private BigDecimal returnAmount; /** * 实际退库库位 @@ -117,6 +120,8 @@ public class WmsReturnOrderBo extends BaseEntity{ // @NotNull(message = "erp同步数量不能为空", groups = { AddGroup.class, EditGroup.class }) private Long erpSynchronousQty; private String tenantId; + private String materialCode; + private Long outstockRecordId; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/BaseMaterialInfoVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/BaseMaterialInfoVo.java index 0ea8c6f..5e8383b 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/BaseMaterialInfoVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/BaseMaterialInfoVo.java @@ -1,5 +1,6 @@ package org.dromara.wms.domain.vo; +import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import org.dromara.wms.domain.BaseMaterialInfo; @@ -201,13 +202,13 @@ public class BaseMaterialInfoVo implements Serializable { * 最大库存数量 */ @ExcelProperty(value = "最大库存数量") - private Long maxStockAmount; + private BigDecimal maxStockAmount; /** * 最小库存数量 */ @ExcelProperty(value = "最小库存数量") - private Long minStockAmount; + private BigDecimal minStockAmount; /** * 安全库存数量 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/BaseSupplierInfoVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/BaseSupplierInfoVo.java new file mode 100644 index 0000000..151f1f0 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/BaseSupplierInfoVo.java @@ -0,0 +1,116 @@ +package org.dromara.wms.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.wms.domain.BaseSupplierInfo; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 供应商信息视图对象 base_supplier_info + * + * @author ZangCH + * @date 2025-01-07 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = BaseSupplierInfo.class) +public class BaseSupplierInfoVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @ExcelProperty(value = "主键标识") + private Long supplierId; + + /** + * 租户编号 + */ + @ExcelProperty(value = "租户编号") + private String tenantId; + + /** + * 供应商编号 + */ + @ExcelProperty(value = "供应商编号") + private String supplierCode; + + /** + * 供应商名称 + */ + @ExcelProperty(value = "供应商名称") + private String supplierName; + + /** + * erp的主键 + */ + @ExcelProperty(value = "erp的主键") + private Long erpId; + + /** + * 激活状态(1启用 0停用) + */ + @ExcelProperty(value = "激活状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String supplierStatus; + + /** + * 审核日期 + */ + @ExcelProperty(value = "审核日期") + private Date auditDate; + + /** + * erp最后更新时间 + */ + @ExcelProperty(value = "erp最后更新时间") + private Date erpModifyDate; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 创建部门 + */ + @ExcelProperty(value = "创建部门") + private Long createDept; + + /** + * 创建人 + */ + @ExcelProperty(value = "创建人") + private Long createBy; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + /** + * 更新人 + */ + @ExcelProperty(value = "更新人") + private Long updateBy; + + /** + * 更新时间 + */ + @ExcelProperty(value = "更新时间") + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderDetailVo.java new file mode 100644 index 0000000..1cdb450 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderDetailVo.java @@ -0,0 +1,96 @@ +package org.dromara.wms.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsAllocateOrderDetail; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 调拨子视图对象 wms_allocate_order_detail + * + * @author LionLi + * @date 2025-01-09 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsAllocateOrderDetail.class) +public class WmsAllocateOrderDetailVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 调拨子表主键 + */ + @ExcelProperty(value = "调拨子表主键") + private Long aoDId; + + /** + * 调拨单号 + */ + @ExcelProperty(value = "调拨单号") + private String allocateCode; + + /** + * 物料id + */ + @ExcelProperty(value = "物料id") + private Long materialId; + + /** + * 调拨数量 + */ + @ExcelProperty(value = "调拨数量") + private Long allocateOrderQty; + + /** + * erp同步状态 + */ + @ExcelProperty(value = "erp同步状态") + private String erpSynchronousStatus; + + /** + * erp同步数量 + */ + @ExcelProperty(value = "erp同步数量") + private Long erpSynchronousQty; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + private String materialCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderVo.java new file mode 100644 index 0000000..c68903b --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsAllocateOrderVo.java @@ -0,0 +1,153 @@ +package org.dromara.wms.domain.vo; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsAllocateOrder; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 调拨工单视图对象 wms_allocate_order + * + * @author LionLi + * @date 2025-01-09 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsAllocateOrder.class) +public class WmsAllocateOrderVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @ExcelProperty(value = "表主键") + private Long aoId; + + /** + * 调拨单号 + */ + @ExcelProperty(value = "调拨单号") + private String allocateOrderCode; + + /** + * 物料大类 + */ + @ExcelProperty(value = "物料大类") + private String materialCategories; + + /** + * 出库仓库ID + */ + @ExcelProperty(value = "出库仓库ID") + private Long planWarehouseId; + + /** + * 工单状态 + */ + @ExcelProperty(value = "工单状态") + private String orderStatus; + + /** + * 入库仓库ID + */ + @ExcelProperty(value = "入库仓库ID") + private Long targetWarehouseId; + + /** + * 审核人 + */ + @ExcelProperty(value = "审核人") + private String auditBy; + + /** + * 审核时间 + */ + @ExcelProperty(value = "审核时间") + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + @ExcelProperty(value = "审核状态(0待审核,1审核通过,2审核未通过)") + private String auditStatus; + + /** + * 审核意见 + */ + @ExcelProperty(value = "审核意见") + private String auditComments; + + /** + * 是否创建出库单 + */ + @ExcelProperty(value = "是否创建出库单") + private String createOut; + + /** + * 出库单号 + */ + @ExcelProperty(value = "出库单号") + private String outCode; + + /** + * 是否创建入库单 + */ + @ExcelProperty(value = "是否创建入库单") + private String createIn; + + /** + * 入库单号 + */ + @ExcelProperty(value = "入库单号") + private String inCode; + + /** + * 入库方式 + */ + @ExcelProperty(value = "入库方式") + private String inMethod; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + private String planWarehouseCode; + private String targetWarehouseCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsConfigurationVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsConfigurationVo.java index 96d2e5e..e87f767 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsConfigurationVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsConfigurationVo.java @@ -104,5 +104,9 @@ public class WmsConfigurationVo implements Serializable { */ private String tenantId; private String warehouseCode; + /** + * 审核人 + */ + private String auditBy; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppInStockDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppInStockDetailVo.java new file mode 100644 index 0000000..daca3b8 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppInStockDetailVo.java @@ -0,0 +1,116 @@ +package org.dromara.wms.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsHppInStockDetail; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + + + +/** + * 半制品入库视图对象 wms_hpp_in_stock_detail + * + * @author LionLi + * @date 2025-01-14 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsHppInStockDetail.class) +public class WmsHppInStockDetailVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ExcelProperty(value = "主键id") + private Long objId; + + /** + * 流水卡号 + */ + @ExcelProperty(value = "流水卡号") + private String cardNo; + + /** + * 工装架子号 + */ + @ExcelProperty(value = "工装架子号") + private String shelfNo; + + /** + * 库位id + */ + @ExcelProperty(value = "库位id") + private Long storePlaceId; + + /** + * 品级编号,0:合格,1:不合格 + */ + @ExcelProperty(value = "品级编号,0:合格,1:不合格") + private String gradeCode; + + /** + * 产品类别:0:半成品,1:成型 + */ + @ExcelProperty(value = "产品类别:0:半成品,1:成型") + private String productCategory; + + /** + * 物料 + */ + @ExcelProperty(value = "物料") + private Long materialId; + + /** + * 物料规格 + */ + @ExcelProperty(value = "物料规格") + private String materialSpec; + + /** + * 入库类型,0:半制品产出,2:入半制品线边库3:入成型线边库 + */ + @ExcelProperty(value = "入库类型,0:半制品产出,2:入半制品线边库3:入成型线边库") + private String instockType; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + private BigDecimal instockNum; + private String storePlaceCode; + private String materialCode; + private String unitName; + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppOutStockDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppOutStockDetailVo.java new file mode 100644 index 0000000..a425472 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppOutStockDetailVo.java @@ -0,0 +1,102 @@ +package org.dromara.wms.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsHppOutStockDetail; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 半成品出库视图对象 wms_hpp_out_stock_detail + * + * @author LionLi + * @date 2025-01-14 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsHppOutStockDetail.class) +public class WmsHppOutStockDetailVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ExcelProperty(value = "主键id") + private Long objId; + + /** + * 流水卡号 + */ + @ExcelProperty(value = "流水卡号") + private String cardNo; + + /** + * 工装架子号 + */ + @ExcelProperty(value = "工装架子号") + private String shelfNo; + + /** + * 库位id + */ + @ExcelProperty(value = "库位id") + private Long storePlaceId; + + /** + * 品级编号,0:合格,1:不合格 + */ + @ExcelProperty(value = "品级编号,0:合格,1:不合格") + private String gradeCode; + + /** + * 出库类型 + */ + @ExcelProperty(value = "出库类型") + private String outType; + + /** + * 目的库位 + */ + @ExcelProperty(value = "目的库位") + private Long targetStorePlaceId; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + private String storePlaceCode; + private String targertStorePlaceCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppStorageDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppStorageDetailVo.java new file mode 100644 index 0000000..163c253 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppStorageDetailVo.java @@ -0,0 +1,115 @@ +package org.dromara.wms.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsHppStorageDetail; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + + + +/** + * 半成品库存视图对象 wms_hpp_storage_detail + * + * @author LionLi + * @date 2025-01-14 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsHppStorageDetail.class) +public class WmsHppStorageDetailVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long objId; + + /** + * 流水卡号 + */ + @ExcelProperty(value = "流水卡号") + private String cardNo; + + /** + * 工装架子号 + */ + @ExcelProperty(value = "工装架子号") + private String shelfNo; + + /** + * 入库类型 + */ + @ExcelProperty(value = "入库类型") + private String instockType; + + /** + * 物料Id + */ + @ExcelProperty(value = "物料Id") + private Long materialId; + + /** + * 库位id + */ + @ExcelProperty(value = "库位id") + private Long storePlaceId; + + /** + * 密炼来料数量 + */ + @ExcelProperty(value = "密炼来料数量") + private BigDecimal sourceNum; + + /** + * 库存数量 + */ + @ExcelProperty(value = "库存数量") + private double storageNum; + + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + private String storePlaceCode; + private String materialCode; + private double minParkingTime; + private double maxParkingTime; + private Date minTime; + private Date maxTime; + private String unitName; + + private double outNumber; +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppStorePlaceVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppStorePlaceVo.java new file mode 100644 index 0000000..4ef2efa --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppStorePlaceVo.java @@ -0,0 +1,100 @@ +package org.dromara.wms.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsHppStorePlace; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 半成品库位视图对象 wms_hpp_store_place + * + * @author LionLi + * @date 2025-01-14 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsHppStorePlace.class) +public class WmsHppStorePlaceVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ExcelProperty(value = "主键id") + private Long objId; + + /** + * 库位名 + */ + @ExcelProperty(value = "库位名") + private String storePlaceName; + + /** + * 库位代码 + */ + @ExcelProperty(value = "库位代码") + private String storePlaceCode; + + /** + * 仓库id + */ + @ExcelProperty(value = "仓库id") + private Long storeId; + + /** + * 使用状态 + */ + @ExcelProperty(value = "使用状态") + private String usedFlag; + + /** + * 特殊库位 + */ + @ExcelProperty(value = "特殊库位") + private String specitialType; + + /** + * 位置类型 + */ + @ExcelProperty(value = "位置类型") + private String positionType; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppStoreVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppStoreVo.java new file mode 100644 index 0000000..0e16900 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHppStoreVo.java @@ -0,0 +1,108 @@ +package org.dromara.wms.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsHppStore; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 【请填写功能名称】视图对象 wms_hpp_store + * + * @author LionLi + * @date 2025-01-14 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsHppStore.class) +public class WmsHppStoreVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long objId; + + /** + * 仓库名 + */ + @ExcelProperty(value = "仓库名") + private String storeName; + + /** + * 仓库代码 + */ + @ExcelProperty(value = "仓库代码") + private String storeCode; + + /** + * 仓库类型 + */ + @ExcelProperty(value = "仓库类型") + private Long storeType; + + /** + * 使用状态 + */ + @ExcelProperty(value = "使用状态") + private String usedFlag; + + /** + * sap代码 + */ + @ExcelProperty(value = "sap代码") + private String sapCode; + + /** + * 仓库等级 + */ + @ExcelProperty(value = "仓库等级") + private String storeLevel; + + /** + * 上级目录 + */ + @ExcelProperty(value = "上级目录") + private String storeHigherLevel; + + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHsmToolingVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHsmToolingVo.java new file mode 100644 index 0000000..6975186 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsHsmToolingVo.java @@ -0,0 +1,104 @@ +package org.dromara.wms.domain.vo; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsHsmTooling; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 半成品工装视图对象 wms_hsm_tooling + * + * @author LionLi + * @date 2025-01-14 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsHsmTooling.class) +public class WmsHsmToolingVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "$column.readConverterExp()") + private Long objId; + + /** + * $column.columnComment + */ + @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "$column.readConverterExp()") + private String createdBy; + + /** + * $column.columnComment + */ + @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "$column.readConverterExp()") + private Date createdTime; + + /** + * $column.columnComment + */ + @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "$column.readConverterExp()") + private String updatedBy; + + /** + * $column.columnComment + */ + @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "$column.readConverterExp()") + private Date updatedTime; + + /** + * $column.columnComment + */ + @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "$column.readConverterExp()") + private String toolingBarcode; + + /** + * $column.columnComment + */ + @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "$column.readConverterExp()") + private String tenantId; + + /** + * $column.columnComment + */ + @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "$column.readConverterExp()") + private String toolingRfidBarcode; + + /** + * $column.columnComment + */ + @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "$column.readConverterExp()") + private String toolingType; + + /** + * $column.columnComment + */ + @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "$column.readConverterExp()") + private String isUsed; + + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryCheckRecordVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryCheckRecordVo.java new file mode 100644 index 0000000..e5b7c1e --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryCheckRecordVo.java @@ -0,0 +1,184 @@ +package org.dromara.wms.domain.vo; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsInventoryCheckRecord; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 盘点记录和调整工单视图对象 wms_inventory_check_record + * + * @author LionLi + * @date 2025-01-10 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsInventoryCheckRecord.class) +public class WmsInventoryCheckRecordVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 盘点记录主键 + */ + @ExcelProperty(value = "盘点记录主键") + private Long icRecordId; + + /** + * 物料大类 + */ + @ExcelProperty(value = "物料大类") + private String materialCategories; + + /** + * 盘点单号 + */ + @ExcelProperty(value = "盘点单号") + private String checkCode; + + /** + * 批次码 + */ + @ExcelProperty(value = "批次码") + private String batchCode; + + /** + * 物料id + */ + @ExcelProperty(value = "物料id") + private Long materialId; + + /** + * 库位编码 + */ + @ExcelProperty(value = "库位编码") + private String locationCode; + + /** + * 物料编码 + */ + @ExcelProperty(value = "物料编码") + private String materialCode; + + /** + * 物料名称 + */ + @ExcelProperty(value = "物料名称") + private String materialName; + + /** + * 库存数量 + */ + @ExcelProperty(value = "库存数量") + private String inventoryQty; + + /** + * 盘点数量 + */ + @ExcelProperty(value = "盘点数量") + private Long checkQty; + + /** + * 盘点状态(0异常,1正常) + */ + @ExcelProperty(value = "盘点状态(0异常,1正常)") + private String checkStatus; + + /** + * erp同步状态 + */ + @ExcelProperty(value = "erp同步状态") + private String erpSynchronousStatus; + + /** + * erp同步数量 + */ + @ExcelProperty(value = "erp同步数量") + private Long erpSynchronousQty; + + /** + * 是否发起调整(0否,1是) + */ + @ExcelProperty(value = "是否发起调整", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=否,1是") + private String isAdjust; + + /** + * 审核人 + */ + @ExcelProperty(value = "审核人") + private String auditBy; + + /** + * 审核时间 + */ + @ExcelProperty(value = "审核时间") + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + @ExcelProperty(value = "审核状态(0待审核,1审核通过,2审核未通过)") + private String auditStatus; + + /** + * 审核意见 + */ + @ExcelProperty(value = "审核意见") + private String auditComments; + + /** + * 调整状态(0待执行,1完成) + */ + @ExcelProperty(value = "调整状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=待执行,1完成") + private String adjustStatus; + + /** + * 调整类型(1库存调整) + */ + @ExcelProperty(value = "调整类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "1=库存调整") + private String adjustType; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryCheckVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryCheckVo.java new file mode 100644 index 0000000..a0e3576 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryCheckVo.java @@ -0,0 +1,135 @@ +package org.dromara.wms.domain.vo; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsInventoryCheck; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 库存盘点视图对象 wms_inventory_check + * + * @author LionLi + * @date 2025-01-10 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsInventoryCheck.class) +public class WmsInventoryCheckVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @ExcelProperty(value = "表主键") + private Long inventoryCheckId; + + /** + * 盘点单号 + */ + @ExcelProperty(value = "盘点单号") + private String checkCode; + + /** + * 物料大类 + */ + @ExcelProperty(value = "物料大类") + private String materialCategories; + + /** + * 计划仓库ID + */ + @ExcelProperty(value = "计划仓库ID") + private Long planWarehouseId; + + /** + * 盘点类型(1全部,2货架,3物料)) + */ + @ExcelProperty(value = "盘点类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "1=全部,2货架,3物料") + private String checkType; + + /** + * 盘点状态(0计划,2盘点中,3盘点完成) + */ + @ExcelProperty(value = "盘点状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "0=计划,2盘点中,3盘点完成") + private String checkStatus; + + /** + * 审核人 + */ + @ExcelProperty(value = "审核人") + private String auditBy; + + /** + * 审核时间 + */ + @ExcelProperty(value = "审核时间") + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + @ExcelProperty(value = "审核状态(0待审核,1审核通过,2审核未通过)") + private String auditStatus; + + /** + * 审核意见 + */ + @ExcelProperty(value = "审核意见") + private String auditComments; + + /** + * 开始时间 + */ + @ExcelProperty(value = "开始时间") + private Date beginTime; + + /** + * 结束时间 + */ + @ExcelProperty(value = "结束时间") + private Date endTime; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + private String warehouseCode;//字段映射 +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryVo.java index 8abbeba..5ea7c58 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsInventoryVo.java @@ -112,6 +112,10 @@ public class WmsInventoryVo implements Serializable { private Date updateTime; private String warehouseCode;//字段映射 + private String materialCode;//字段映射 + private String warehouseId; + private BigDecimal maxStockAmount; + private BigDecimal minStockAmount; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsMoveOrderVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsMoveOrderVo.java new file mode 100644 index 0000000..15e9506 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsMoveOrderVo.java @@ -0,0 +1,142 @@ +package org.dromara.wms.domain.vo; + +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsMoveOrder; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 移库工单视图对象 wms_move_order + * + * @author LionLi + * @date 2025-01-10 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsMoveOrder.class) +public class WmsMoveOrderVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @ExcelProperty(value = "表主键") + private Long moveId; + + /** + * 物料ID + */ + @ExcelProperty(value = "物料ID") + private Long materialId; + + /** + * 物料大类 + */ + @ExcelProperty(value = "物料大类") + private String materialCategories; + + /** + * 仓库ID + */ + @ExcelProperty(value = "仓库ID") + private Long warehouseId; + + /** + * 计划库位 + */ + @ExcelProperty(value = "计划库位") + private String planLocationCode; + + /** + * 工单状态(0执行中,1完成,2关闭) + */ + @ExcelProperty(value = "工单状态(0执行中,1完成,2关闭)") + private String orderStatus; + + /** + * 目标库位 + */ + @ExcelProperty(value = "目标库位") + private String targetLocationCode; + + /** + * 审核人 + */ + @ExcelProperty(value = "审核人") + private String auditBy; + + /** + * 审核时间 + */ + @ExcelProperty(value = "审核时间") + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + @ExcelProperty(value = "审核状态(0待审核,1审核通过,2审核未通过)") + private String auditStatus; + + /** + * 审核意见 + */ + @ExcelProperty(value = "审核意见") + private String auditComments; + + /** + * erp同步状态 + */ + @ExcelProperty(value = "erp同步状态") + private String erpSynchronousStatus; + + /** + * erp同步数量 + */ + @ExcelProperty(value = "erp同步数量") + private Long erpSynchronousQty; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + @TableField(exist = false) + private String warehouseCode; + @TableField(exist = false) + private String materialCode; + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockDetailVo.java index 40a7f72..aa099b1 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockDetailVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockDetailVo.java @@ -93,5 +93,7 @@ public class WmsOutstockDetailVo implements Serializable { private String materialCode; + private String materialName; + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockRecordVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockRecordVo.java index f25241e..d74d90b 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockRecordVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsOutstockRecordVo.java @@ -10,6 +10,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; +import java.math.BigDecimal; import java.util.Date; @@ -68,7 +69,7 @@ public class WmsOutstockRecordVo implements Serializable { * 出库数量 */ @ExcelProperty(value = "出库数量") - private Long outstockQty; + private BigDecimal outstockQty; /** * 物料大类 @@ -100,7 +101,7 @@ public class WmsOutstockRecordVo implements Serializable { * erp同步数量 */ @ExcelProperty(value = "erp同步数量") - private Long erpSynchronousQty; + private BigDecimal erpSynchronousQty; /** * 物料信息 */ @@ -108,4 +109,7 @@ public class WmsOutstockRecordVo implements Serializable { private String materialName; private String materialUnit; private String materialSpec; + private String returnFlag; + private Long warehouseId; + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmInLoadDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmInLoadDetailVo.java new file mode 100644 index 0000000..2ffef91 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmInLoadDetailVo.java @@ -0,0 +1,93 @@ +package org.dromara.wms.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsPsmInLoadDetail; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 装车架子详细信息视图对象 wms_psm_in_load_detail + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsPsmInLoadDetail.class) +public class WmsPsmInLoadDetailVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @ExcelProperty(value = "表主键") + private Long objid; + + /** + * 外键 + */ + @ExcelProperty(value = "外键") + private Long inLoadId; + + /** + * 物料ID + */ + @ExcelProperty(value = "物料ID") + private Long materialId; + + /** + * 轮胎规格 + */ + @ExcelProperty(value = "轮胎规格") + private String materialSpe; + + /** + * 硫化条码 + */ + @ExcelProperty(value = "硫化条码") + private String tyreNo; + + /** + * 品级编号 + */ + @ExcelProperty(value = "品级编号") + private String checkGradeCode; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmInLoadVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmInLoadVo.java new file mode 100644 index 0000000..0b9c5d9 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmInLoadVo.java @@ -0,0 +1,117 @@ +package org.dromara.wms.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsPsmInLoad; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 装车架子信息视图对象 wms_psm_in_load + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsPsmInLoad.class) +public class WmsPsmInLoadVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @ExcelProperty(value = "表主键") + private Long inLoadId; + + /** + * 装车班次 + */ + @ExcelProperty(value = "装车班次") + private Long loadShift; + + /** + * 装车班组 + */ + @ExcelProperty(value = "装车班组") + private Long loadClass; + + /** + * 工装条码 + */ + @ExcelProperty(value = "工装条码") + private String toolingBarcode; + + /** + * 仓库名称 + */ + @ExcelProperty(value = "仓库名称") + private String storeName; + + /** + * 库位条码 + */ + @ExcelProperty(value = "库位条码") + private String storePlaceCode; + + /** + * 物料ID + */ + @ExcelProperty(value = "物料ID") + private Long materialId; + + /** + * 轮胎规格 + */ + @ExcelProperty(value = "轮胎规格") + private String materialSpe; + + /** + * 品级编号 + */ + @ExcelProperty(value = "品级编号") + private String checkGradeCode; + + /** + * 装载数量 + */ + @ExcelProperty(value = "装载数量") + private Long loadAmount; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + private String materialCode; +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmInStockDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmInStockDetailVo.java new file mode 100644 index 0000000..c9c6111 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmInStockDetailVo.java @@ -0,0 +1,95 @@ +package org.dromara.wms.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsPsmInStockDetail; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 成品入库视图对象 wms_psm_in_stock_detail + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsPsmInStockDetail.class) +public class WmsPsmInStockDetailVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long objid; + + /** + * 外键关联in_load表主键id + */ + @ExcelProperty(value = "外键关联in_load表主键id") + private Long inStockId; + + /** + * 物料id + */ + @ExcelProperty(value = "物料id") + private Long materialId; + + /** + * 物料规格 + */ + @ExcelProperty(value = "物料规格") + private String materialSpe; + + /** + * 硫化条码 + */ + @ExcelProperty(value = "硫化条码") + private String tyreNo; + + /** + * 品级编号 + */ + @ExcelProperty(value = "品级编号") + private String checkGradeCode; + + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmInStockVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmInStockVo.java new file mode 100644 index 0000000..f26aba6 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmInStockVo.java @@ -0,0 +1,119 @@ +package org.dromara.wms.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsPsmInStock; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 成品入库记录视图对象 wms_psm_in_stock + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsPsmInStock.class) +public class WmsPsmInStockVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @ExcelProperty(value = "表主键") + private Long inStockId; + + /** + * 入库班组 + */ + @ExcelProperty(value = "入库班组") + private String inClass; + + /** + * 入库班次 + */ + @ExcelProperty(value = "入库班次") + private String inShift; + + /** + * 入库数量 + */ + @ExcelProperty(value = "入库数量") + private Long inAmount; + + /** + * 仓库名称 + */ + @ExcelProperty(value = "仓库名称") + private String storeName; + + /** + * 库位条码 + */ + @ExcelProperty(value = "库位条码") + private String storePlaceCode; + + /** + * 工装条码 + */ + @ExcelProperty(value = "工装条码") + private String toolingBarcode; + + /** + * 物料ID + */ + @ExcelProperty(value = "物料ID") + private Long materialId; + + /** + * 轮胎规格 + */ + @ExcelProperty(value = "轮胎规格") + private String materialSpe; + + /** + * 品级编号 + */ + @ExcelProperty(value = "品级编号") + private String checkGradeCode; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmStorageVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmStorageVo.java new file mode 100644 index 0000000..dc0a9cd --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmStorageVo.java @@ -0,0 +1,108 @@ +package org.dromara.wms.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsPsmStorage; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 成品库存视图对象 wms_psm_storage + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsPsmStorage.class) +public class WmsPsmStorageVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @ExcelProperty(value = "表主键") + private Long objid; + + /** + * 物料ID + */ + @ExcelProperty(value = "物料ID") + private Long materialId; + + /** + * 轮胎规格 + */ + @ExcelProperty(value = "轮胎规格") + private String materialSpe; + + /** + * 硫化条码 + */ + @ExcelProperty(value = "硫化条码") + private String tyreNo; + + /** + * 品级编号 + */ + @ExcelProperty(value = "品级编号") + private String checkGradeCode; + + /** + * 仓库名称 + */ + @ExcelProperty(value = "仓库名称") + private String storeName; + + /** + * 库位条码 + */ + @ExcelProperty(value = "库位条码") + private String storePlaceCode; + + /** + * 工装条码 + */ + @ExcelProperty(value = "工装条码") + private String toolingBarcode; + + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + private String materialCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmStorePlaceVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmStorePlaceVo.java new file mode 100644 index 0000000..90e878b --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmStorePlaceVo.java @@ -0,0 +1,92 @@ +package org.dromara.wms.domain.vo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsPsmStorePlace; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 成品库位管理视图对象 wms_psm_store_place + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsPsmStorePlace.class) +public class WmsPsmStorePlaceVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @ExcelProperty(value = "表主键") + private Long storePlaceId; + + /** + * 库位编码 + */ + @ExcelProperty(value = "库位编码") + private String storePlaceCode; + + /** + * 库位名称 + */ + @ExcelProperty(value = "库位名称") + private String storePlaceName; + + /** + * 所属仓库 + */ + @ExcelProperty(value = "所属仓库") + private Long storeId; + + /** + * sap库区代码 + */ + @ExcelProperty(value = "sap库区代码") + private String sapCode; + + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + private String storeCode; + private String storeName; + + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmStoreTypeVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmStoreTypeVo.java new file mode 100644 index 0000000..5496c17 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmStoreTypeVo.java @@ -0,0 +1,88 @@ +package org.dromara.wms.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsPsmStoreType; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 成品仓库类型视图对象 wms_psm_store_type + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsPsmStoreType.class) +public class WmsPsmStoreTypeVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @ExcelProperty(value = "表主键") + private Long storeTypeId; + + /** + * 仓库类型代码 + */ + @ExcelProperty(value = "仓库类型代码") + private String storeTypeCode; + + /** + * 仓库类型名称 + */ + @ExcelProperty(value = "仓库类型名称") + private String storeTypeName; + + /** + * 存放品级编号 + */ + @ExcelProperty(value = "存放品级编号") + private String checkGradeCode; + + /** + * 存放品级名称 + */ + @ExcelProperty(value = "存放品级名称") + private String checkGradeName; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmStoreVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmStoreVo.java new file mode 100644 index 0000000..d3d12aa --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPsmStoreVo.java @@ -0,0 +1,84 @@ +package org.dromara.wms.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import org.dromara.wms.domain.WmsPsmStore; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 成品仓库管理视图对象 wms_psm_store + * + * @author LionLi + * @date 2025-01-15 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsPsmStore.class) +public class WmsPsmStoreVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @ExcelProperty(value = "表主键") + private Long storeId; + + /** + * 仓库名称 + */ + @ExcelProperty(value = "仓库名称") + private String storeName; + + /** + * 仓库编码 + */ + @ExcelProperty(value = "仓库编码") + private String storeCode; + + /** + * 仓库类型 + */ + @ExcelProperty(value = "仓库类型") + private Long storeTypeId; + /** + * 租户id + */ + private String tenantId; + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private Date createTime; + + /** + * 更新者 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private String updateBy; + + /** + * 更新时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + private String storeTypeCode; + + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java new file mode 100644 index 0000000..5df4635 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderDetailVo.java @@ -0,0 +1,101 @@ +package org.dromara.wms.domain.vo; + +import org.dromara.wms.domain.WmsPurchaseOrderDetail; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + + + +/** + * 采购订单-物料视图对象 wms_purchase_order_detail + * + * @author ZangCH + * @date 2025-01-08 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsPurchaseOrderDetail.class) +public class WmsPurchaseOrderDetailVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 采购物料表主键 + */ + @ExcelProperty(value = "采购物料表主键") + private Long poDId; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + /** + * 物料编码 + */ + @ExcelProperty(value = "物料编码") + private String materialCode; + + /** + * 物料名称 + */ + @ExcelProperty(value = "物料名称") + private String materialName; + + /** + * 采购订单编号 + */ + @ExcelProperty(value = "采购订单编号") + private String poNo; + + /** + * 含税单价 + */ + @ExcelProperty(value = "含税单价") + private BigDecimal taxPrice; + + /** + * 采购数量 + */ + @ExcelProperty(value = "采购数量") + private BigDecimal purchaseQty; + + /** + * 物料规格 + */ + @ExcelProperty(value = "物料规格") + private String materialSpe; + + /** + * 计量单位名称 + */ + @ExcelProperty(value = "计量单位名称") + private String unitName; + + /** + * 送货数量=送货单数量=总入库数量 + */ + @ExcelProperty(value = "送货数量=送货单数量=总入库数量") + private BigDecimal deliveryQty; + + /** + * 租户号 + */ + @ExcelProperty(value = "租户号") + private String tenantId; + + private Long materialId; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderVo.java new file mode 100644 index 0000000..89a042b --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsPurchaseOrderVo.java @@ -0,0 +1,150 @@ +package org.dromara.wms.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.wms.domain.WmsPurchaseOrder; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 采购订单视图对象 wms_purchase_order + * + * @author ZangCH + * @date 2025-01-08 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = WmsPurchaseOrder.class) +public class WmsPurchaseOrderVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表主键 + */ + @ExcelProperty(value = "表主键") + private Long poId; + + /** + * 订单编号 + */ + @ExcelProperty(value = "订单编号") + private String poNo; + + /** + * 订单状态(1待采购2部分到货3订单完成) + */ + @ExcelProperty(value = "订单状态(1待采购2部分到货3订单完成)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "wms_po_status") + private String poStatus; + + /** + * 计划交货日期 + */ + @ExcelProperty(value = "计划交货日期") + private String planDeliveryDate; + + /** + * 供应商ID + */ + @ExcelProperty(value = "供应商ID") + private Long supplierId; + + /** + * 订单类型(1人工创建,2ERP同步,3后台创建4) + */ + @ExcelProperty(value = "订单类型(1人工创建,2ERP同步,3后台创建4)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "wms_po_type") + private String poType; + + /** + * 单据的ID,连表扩充 + */ + @ExcelProperty(value = "单据的ID,连表扩充") + private Long erpId; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 租户号 + */ + @ExcelProperty(value = "租户号") + private String tenantId; + + /** + * 创建人 + */ + @ExcelProperty(value = "创建人") + private String createBy; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + /** + * 更新人 + */ + @ExcelProperty(value = "更新人") + private String updateBy; + + /** + * 更新时间 + */ + @ExcelProperty(value = "更新时间") + private Date updateTime; + + /** + * 物料大类 + */ + @ExcelProperty(value = "物料大类", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "material_mategories") + private String materialCategories; + + /** + * 审核人 + */ + @ExcelProperty(value = "审核人") + private String auditBy; + + /** + * 审核时间 + */ + @ExcelProperty(value = "审核时间") + private Date auditTime; + + /** + * 审核状态(0待审核,1审核通过,2审核未通过) + */ + @ExcelProperty(value = "审核状态(0待审核,1审核通过,2审核未通过)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "wms_audit_status") + private String auditStatus; + + /** + * 审核意见 + */ + @ExcelProperty(value = "审核意见") + private String auditComments; + /** + * 供应商编号 + */ + private String supplierCode; + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsReturnOrderVo.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsReturnOrderVo.java index eed0f0d..fa9e579 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsReturnOrderVo.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/domain/vo/WmsReturnOrderVo.java @@ -1,5 +1,6 @@ package org.dromara.wms.domain.vo; +import java.math.BigDecimal; import java.util.Date; import com.baomidou.mybatisplus.annotation.FieldFill; @@ -61,7 +62,7 @@ public class WmsReturnOrderVo implements Serializable { * 计划数量 */ @ExcelProperty(value = "计划数量") - private Long planAmount; + private BigDecimal planAmount; /** * 仓库ID @@ -85,7 +86,7 @@ public class WmsReturnOrderVo implements Serializable { * 实际数量 */ @ExcelProperty(value = "实际数量") - private Long returnAmount; + private BigDecimal returnAmount; /** * 实际退库库位 @@ -154,4 +155,7 @@ public class WmsReturnOrderVo implements Serializable { @TableField(fill = FieldFill.INSERT_UPDATE) private Date updateTime; private String warehouseCode;//字段映射 + + private String materialCode; + } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/BaseMaterialInfoMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/BaseMaterialInfoMapper.java index 1cc10fb..979244a 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/BaseMaterialInfoMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/BaseMaterialInfoMapper.java @@ -3,6 +3,7 @@ package org.dromara.wms.mapper; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.wms.domain.BaseMaterialInfo; import org.dromara.wms.domain.vo.BaseMaterialInfoVo; +import org.springframework.stereotype.Repository; /** * 物料信息Mapper接口 @@ -10,6 +11,7 @@ import org.dromara.wms.domain.vo.BaseMaterialInfoVo; * @author zangch * @date 2025-01-07 */ +@Repository public interface BaseMaterialInfoMapper extends BaseMapperPlus { } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/BaseSupplierInfoMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/BaseSupplierInfoMapper.java new file mode 100644 index 0000000..28b074d --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/BaseSupplierInfoMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.BaseSupplierInfo; +import org.dromara.wms.domain.vo.BaseSupplierInfoVo; + +/** + * 供应商信息Mapper接口 + * + * @author ZangCH + * @date 2025-01-07 + */ +public interface BaseSupplierInfoMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsAllocateOrderDetailMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsAllocateOrderDetailMapper.java new file mode 100644 index 0000000..a9e50fd --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsAllocateOrderDetailMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsAllocateOrderDetail; +import org.dromara.wms.domain.vo.WmsAllocateOrderDetailVo; + +/** + * 调拨子Mapper接口 + * + * @author LionLi + * @date 2025-01-09 + */ +public interface WmsAllocateOrderDetailMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsAllocateOrderMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsAllocateOrderMapper.java new file mode 100644 index 0000000..de4dba3 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsAllocateOrderMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsAllocateOrder; +import org.dromara.wms.domain.vo.WmsAllocateOrderVo; + +/** + * 调拨工单Mapper接口 + * + * @author LionLi + * @date 2025-01-09 + */ +public interface WmsAllocateOrderMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppInStockDetailMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppInStockDetailMapper.java new file mode 100644 index 0000000..1c78b78 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppInStockDetailMapper.java @@ -0,0 +1,22 @@ +package org.dromara.wms.mapper; + +import org.apache.ibatis.annotations.Select; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsHppInStockDetail; +import org.dromara.wms.domain.vo.WmsHppInStockDetailVo; +import org.springframework.stereotype.Repository; + +/** + * 半制品入库Mapper接口 + * + * @author LionLi + * @date 2025-01-14 + */ +@Repository +public interface WmsHppInStockDetailMapper extends BaseMapperPlus { + @Select("select top 1 obj_id,create_time,card_no,shelf_no, grade_code,product_category,\n" + + " material_id,material_spec,instock_num,material_code,unit_name\n" + + "from wms_hpp_in_stock_detail where store_place_id is null and shelf_no=#{code}\n" + + "order by create_time") + WmsHppInStockDetailVo semiSelectVehicleInfo(String code); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppOutStockDetailMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppOutStockDetailMapper.java new file mode 100644 index 0000000..ce49968 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppOutStockDetailMapper.java @@ -0,0 +1,19 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsHppOutStockDetail; +import org.dromara.wms.domain.vo.WmsHppOutStockDetailVo; +import org.springframework.stereotype.Repository; + + +/** + * 半成品出库Mapper接口 + * + * @author LionLi + * @date 2025-01-14 + */ +@Repository +public interface WmsHppOutStockDetailMapper extends BaseMapperPlus { + + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorageDetailMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorageDetailMapper.java new file mode 100644 index 0000000..ca16b80 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorageDetailMapper.java @@ -0,0 +1,22 @@ +package org.dromara.wms.mapper; + + +import org.apache.ibatis.annotations.Select; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsHppStorageDetail; +import org.dromara.wms.domain.vo.WmsHppStorageDetailVo; +import org.springframework.stereotype.Repository; + +/** + * 半成品库存Mapper接口 + * + * @author LionLi + * @date 2025-01-14 + */ +@Repository +public interface WmsHppStorageDetailMapper extends BaseMapperPlus { + @Select("select top 1 obj_id, card_no,shelf_no,material_id,storage_num,material_code,unit_name,create_time," + + " dateadd(hh, min_parking_time, create_time) as min_time,dateadd(hh, max_parking_time, create_time) as max_time " + + "from wms_hpp_storage_detail where card_no=#{code} ") + WmsHppStorageDetailVo selectHppStorageDetailInfobyCode(String code); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStoreMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStoreMapper.java new file mode 100644 index 0000000..88cb2ab --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStoreMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsHppStore; +import org.dromara.wms.domain.vo.WmsHppStoreVo; + +/** + * 【请填写功能名称】Mapper接口 + * + * @author LionLi + * @date 2025-01-14 + */ +public interface WmsHppStoreMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorePlaceMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorePlaceMapper.java new file mode 100644 index 0000000..cf6002b --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHppStorePlaceMapper.java @@ -0,0 +1,19 @@ +package org.dromara.wms.mapper; + +import org.apache.ibatis.annotations.Select; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsHppStorePlace; +import org.dromara.wms.domain.vo.WmsHppStorePlaceVo; +import org.springframework.stereotype.Repository; + +/** + * 半成品库位Mapper接口 + * + * @author LionLi + * @date 2025-01-14 + */ +@Repository +public interface WmsHppStorePlaceMapper extends BaseMapperPlus { + @Select("select top 1 obj_id,store_id,store_place_code,store_place_name from wms_hpp_store_place where store_place_code=#{storePlaceCode}") + WmsHppStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHsmToolingMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHsmToolingMapper.java new file mode 100644 index 0000000..2f72620 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsHsmToolingMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsHsmTooling; +import org.dromara.wms.domain.vo.WmsHsmToolingVo; + +/** + * 半成品工装Mapper接口 + * + * @author LionLi + * @date 2025-01-14 + */ +public interface WmsHsmToolingMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckMapper.java new file mode 100644 index 0000000..3bc4ad6 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsInventoryCheck; +import org.dromara.wms.domain.vo.WmsInventoryCheckVo; + +/** + * 库存盘点Mapper接口 + * + * @author LionLi + * @date 2025-01-10 + */ +public interface WmsInventoryCheckMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckRecordMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckRecordMapper.java new file mode 100644 index 0000000..7ae6f70 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryCheckRecordMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsInventoryCheckRecord; +import org.dromara.wms.domain.vo.WmsInventoryCheckRecordVo; + +/** + * 盘点记录和调整工单Mapper接口 + * + * @author LionLi + * @date 2025-01-10 + */ +public interface WmsInventoryCheckRecordMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryMapper.java index 6dbeab7..2567d15 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsInventoryMapper.java @@ -3,10 +3,12 @@ package org.dromara.wms.mapper; import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.wms.domain.WmsInventory; +import org.dromara.wms.domain.bo.WmsInventoryBo; import org.dromara.wms.domain.vo.WmsInventoryVo; import org.springframework.web.bind.annotation.PostMapping; import java.math.BigDecimal; +import java.util.List; /** * 物料库存Mapper接口 @@ -17,4 +19,6 @@ import java.math.BigDecimal; public interface WmsInventoryMapper extends BaseMapperPlus { BigDecimal materailCount(@Param("entity") WmsInventory wmsInventory); + + List listInventoryAlarm(@Param("entity")WmsInventoryBo bo); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsMoveOrderMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsMoveOrderMapper.java new file mode 100644 index 0000000..d1f1e4a --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsMoveOrderMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsMoveOrder; +import org.dromara.wms.domain.vo.WmsMoveOrderVo; + +/** + * 移库工单Mapper接口 + * + * @author LionLi + * @date 2025-01-10 + */ +public interface WmsMoveOrderMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsOutstockRecordMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsOutstockRecordMapper.java index fbbd0b6..6eafe67 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsOutstockRecordMapper.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsOutstockRecordMapper.java @@ -3,6 +3,7 @@ package org.dromara.wms.mapper; import org.dromara.wms.domain.WmsOutstockRecord; import org.dromara.wms.domain.vo.WmsOutstockRecordVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.springframework.stereotype.Repository; /** * 出库记录Mapper接口 @@ -10,6 +11,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; * @author Yinq * @date 2025-01-09 */ +@Repository public interface WmsOutstockRecordMapper extends BaseMapperPlus { } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPdaApiMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPdaApiMapper.java new file mode 100644 index 0000000..179a620 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPdaApiMapper.java @@ -0,0 +1,25 @@ +package org.dromara.wms.mapper; + +import org.apache.ibatis.annotations.Param; +import org.dromara.wms.domain.WmsPsmInLoad; +import org.dromara.wms.domain.WmsPsmInLoadDetail; +import org.dromara.wms.domain.WmsPsmInStock; +import org.dromara.wms.domain.vo.WmsPsmInLoadVo; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface WmsPdaApiMapper { + void rawReturnSubmitUpdateStateById(@Param("warehouseId") Long warehouseId); + + int bindVehicleSubmitInsertInLoad(@Param("wmsPsmInLoad") WmsPsmInLoad wmsPsmInLoad); + + void bindVehicleSubmitInsertInLoadDetail(@Param("id") Long inLoadId, @Param("list") List productList); + + WmsPsmInLoadVo productSelectVehicleInfo(String code); + + void insertInStockDetail(@Param("id") Long inStockId, @Param("list") List list); + + void insertPsmStorage(@Param("list") List list,@Param("data") WmsPsmInStock vo); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInLoadDetailMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInLoadDetailMapper.java new file mode 100644 index 0000000..a0048e0 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInLoadDetailMapper.java @@ -0,0 +1,17 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsPsmInLoadDetail; +import org.dromara.wms.domain.vo.WmsPsmInLoadDetailVo; +import org.springframework.stereotype.Repository; + +/** + * 装车架子详细信息Mapper接口 + * + * @author LionLi + * @date 2025-01-15 + */ +@Repository +public interface WmsPsmInLoadDetailMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInLoadMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInLoadMapper.java new file mode 100644 index 0000000..16d5fa7 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInLoadMapper.java @@ -0,0 +1,17 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsPsmInLoad; +import org.dromara.wms.domain.vo.WmsPsmInLoadVo; +import org.springframework.stereotype.Repository; + +/** + * 装车架子信息Mapper接口 + * + * @author LionLi + * @date 2025-01-15 + */ +@Repository +public interface WmsPsmInLoadMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInStockDetailMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInStockDetailMapper.java new file mode 100644 index 0000000..eba058c --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInStockDetailMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsPsmInStockDetail; +import org.dromara.wms.domain.vo.WmsPsmInStockDetailVo; + +/** + * 成品入库Mapper接口 + * + * @author LionLi + * @date 2025-01-15 + */ +public interface WmsPsmInStockDetailMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInStockMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInStockMapper.java new file mode 100644 index 0000000..91a6b13 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmInStockMapper.java @@ -0,0 +1,17 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsPsmInStock; +import org.dromara.wms.domain.vo.WmsPsmInStockVo; +import org.springframework.stereotype.Repository; + +/** + * 成品入库记录Mapper接口 + * + * @author LionLi + * @date 2025-01-15 + */ +@Repository +public interface WmsPsmInStockMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmStorageMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmStorageMapper.java new file mode 100644 index 0000000..b8407b4 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmStorageMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsPsmStorage; +import org.dromara.wms.domain.vo.WmsPsmStorageVo; + +/** + * 成品库存Mapper接口 + * + * @author LionLi + * @date 2025-01-15 + */ +public interface WmsPsmStorageMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmStoreMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmStoreMapper.java new file mode 100644 index 0000000..8539042 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmStoreMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsPsmStore; +import org.dromara.wms.domain.vo.WmsPsmStoreVo; + +/** + * 成品仓库管理Mapper接口 + * + * @author LionLi + * @date 2025-01-15 + */ +public interface WmsPsmStoreMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmStorePlaceMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmStorePlaceMapper.java new file mode 100644 index 0000000..382abea --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmStorePlaceMapper.java @@ -0,0 +1,19 @@ +package org.dromara.wms.mapper; + +import org.apache.ibatis.annotations.Select; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsPsmStorePlace; +import org.dromara.wms.domain.vo.WmsPsmStorePlaceVo; + +/** + * 成品库位管理Mapper接口 + * + * @author LionLi + * @date 2025-01-15 + */ +public interface WmsPsmStorePlaceMapper extends BaseMapperPlus { + @Select("select top 1 store_place_id,store_place_code, store_place_name, place.store_id," + + "sap_code, store_code, store_name,store_type_id from wms_psm_store_place place " + + "left join dbo.wms_psm_store wps on place.store_id = wps.store_id where store_place_code=#{storePlaceCode} ") + WmsPsmStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmStoreTypeMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmStoreTypeMapper.java new file mode 100644 index 0000000..1f5dbd6 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPsmStoreTypeMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.wms.domain.WmsPsmStoreType; +import org.dromara.wms.domain.vo.WmsPsmStoreTypeVo; + +/** + * 成品仓库类型Mapper接口 + * + * @author LionLi + * @date 2025-01-15 + */ +public interface WmsPsmStoreTypeMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPurchaseOrderDetailMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPurchaseOrderDetailMapper.java new file mode 100644 index 0000000..8caae49 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPurchaseOrderDetailMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.wms.domain.WmsPurchaseOrderDetail; +import org.dromara.wms.domain.vo.WmsPurchaseOrderDetailVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 采购订单-物料Mapper接口 + * + * @author ZangCH + * @date 2025-01-08 + */ +public interface WmsPurchaseOrderDetailMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPurchaseOrderMapper.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPurchaseOrderMapper.java new file mode 100644 index 0000000..03fe892 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/mapper/WmsPurchaseOrderMapper.java @@ -0,0 +1,15 @@ +package org.dromara.wms.mapper; + +import org.dromara.wms.domain.WmsPurchaseOrder; +import org.dromara.wms.domain.vo.WmsPurchaseOrderVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 采购订单Mapper接口 + * + * @author ZangCH + * @date 2025-01-08 + */ +public interface WmsPurchaseOrderMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderDetailService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderDetailService.java new file mode 100644 index 0000000..5eed61f --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderDetailService.java @@ -0,0 +1,72 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsAllocateOrderDetailBo; +import org.dromara.wms.domain.vo.WmsAllocateOrderDetailVo; + +import java.util.Collection; +import java.util.List; + +/** + * 调拨子Service接口 + * + * @author LionLi + * @date 2025-01-09 + */ +public interface IWmsAllocateOrderDetailService { + + /** + * 查询调拨子 + * + * @param aoDId 主键 + * @return 调拨子 + */ + WmsAllocateOrderDetailVo queryById(Long aoDId); + + /** + * 分页查询调拨子列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 调拨子分页列表 + */ + TableDataInfo queryPageList(WmsAllocateOrderDetailBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的调拨子列表 + * + * @param bo 查询条件 + * @return 调拨子列表 + */ + List queryList(WmsAllocateOrderDetailBo bo); + + /** + * 新增调拨子 + * + * @param bo 调拨子 + * @return 是否新增成功 + */ + Boolean insertByBo(List bo); + + /** + * 修改调拨子 + * + * @param bo 调拨子 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsAllocateOrderDetailBo bo); + + /** + * 校验并批量删除调拨子信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + List selectAllocateDetails(); + + int deleteById(Long aoDId); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderService.java new file mode 100644 index 0000000..258f8b3 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsAllocateOrderService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsAllocateOrderBo; +import org.dromara.wms.domain.vo.WmsAllocateOrderVo; + +import java.util.Collection; +import java.util.List; + +/** + * 调拨工单Service接口 + * + * @author LionLi + * @date 2025-01-09 + */ +public interface IWmsAllocateOrderService { + + /** + * 查询调拨工单 + * + * @param aoId 主键 + * @return 调拨工单 + */ + WmsAllocateOrderVo queryById(Long aoId); + + /** + * 分页查询调拨工单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 调拨工单分页列表 + */ + TableDataInfo queryPageList(WmsAllocateOrderBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的调拨工单列表 + * + * @param bo 查询条件 + * @return 调拨工单列表 + */ + List queryList(WmsAllocateOrderBo bo); + + /** + * 新增调拨工单 + * + * @param bo 调拨工单 + * @return 是否新增成功 + */ + String insertByBo(WmsAllocateOrderBo bo); + + /** + * 修改调拨工单 + * + * @param bo 调拨工单 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsAllocateOrderBo bo); + + /** + * 校验并批量删除调拨工单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsBaseLocationService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsBaseLocationService.java index 57d9218..68fee42 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsBaseLocationService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsBaseLocationService.java @@ -41,6 +41,7 @@ public interface IWmsBaseLocationService { * @return 库位基础信息列表 */ List queryList(WmsBaseLocationBo bo); + List queryVoList(WmsBaseLocationBo bo); /** * 新增库位基础信息 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppInStockDetailService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppInStockDetailService.java new file mode 100644 index 0000000..42a6e44 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppInStockDetailService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsHppInStockDetailBo; +import org.dromara.wms.domain.vo.WmsHppInStockDetailVo; + +import java.util.Collection; +import java.util.List; + +/** + * 半制品入库Service接口 + * + * @author LionLi + * @date 2025-01-14 + */ +public interface IWmsHppInStockDetailService { + + /** + * 查询半制品入库 + * + * @param objId 主键 + * @return 半制品入库 + */ + WmsHppInStockDetailVo queryById(Long objId); + + /** + * 分页查询半制品入库列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 半制品入库分页列表 + */ + TableDataInfo queryPageList(WmsHppInStockDetailBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的半制品入库列表 + * + * @param bo 查询条件 + * @return 半制品入库列表 + */ + List queryList(WmsHppInStockDetailBo bo); + + /** + * 新增半制品入库 + * + * @param bo 半制品入库 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsHppInStockDetailBo bo); + + /** + * 修改半制品入库 + * + * @param bo 半制品入库 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsHppInStockDetailBo bo); + + /** + * 校验并批量删除半制品入库信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppOutStockDetailService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppOutStockDetailService.java new file mode 100644 index 0000000..c576391 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppOutStockDetailService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsHppOutStockDetailBo; +import org.dromara.wms.domain.vo.WmsHppOutStockDetailVo; + +import java.util.Collection; +import java.util.List; + +/** + * 半成品出库Service接口 + * + * @author LionLi + * @date 2025-01-14 + */ +public interface IWmsHppOutStockDetailService { + + /** + * 查询半成品出库 + * + * @param objId 主键 + * @return 半成品出库 + */ + WmsHppOutStockDetailVo queryById(Long objId); + + /** + * 分页查询半成品出库列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 半成品出库分页列表 + */ + TableDataInfo queryPageList(WmsHppOutStockDetailBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的半成品出库列表 + * + * @param bo 查询条件 + * @return 半成品出库列表 + */ + List queryList(WmsHppOutStockDetailBo bo); + + /** + * 新增半成品出库 + * + * @param bo 半成品出库 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsHppOutStockDetailBo bo); + + /** + * 修改半成品出库 + * + * @param bo 半成品出库 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsHppOutStockDetailBo bo); + + /** + * 校验并批量删除半成品出库信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppStorageDetailService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppStorageDetailService.java new file mode 100644 index 0000000..7c28557 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppStorageDetailService.java @@ -0,0 +1,69 @@ +package org.dromara.wms.service; + + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsHppStorageDetailBo; +import org.dromara.wms.domain.vo.WmsHppStorageDetailVo; + +import java.util.Collection; +import java.util.List; + +/** + * 半成品库存Service接口 + * + * @author LionLi + * @date 2025-01-14 + */ +public interface IWmsHppStorageDetailService { + + /** + * 查询半成品库存 + * + * @param objId 主键 + * @return 半成品库存 + */ + WmsHppStorageDetailVo queryById(Long objId); + + /** + * 分页查询半成品库存列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 半成品库存分页列表 + */ + TableDataInfo queryPageList(WmsHppStorageDetailBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的半成品库存列表 + * + * @param bo 查询条件 + * @return 半成品库存列表 + */ + List queryList(WmsHppStorageDetailBo bo); + + /** + * 新增半成品库存 + * + * @param bo 半成品库存 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsHppStorageDetailBo bo); + + /** + * 修改半成品库存 + * + * @param bo 半成品库存 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsHppStorageDetailBo bo); + + /** + * 校验并批量删除半成品库存信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppStorePlaceService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppStorePlaceService.java new file mode 100644 index 0000000..ed609a3 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppStorePlaceService.java @@ -0,0 +1,72 @@ +package org.dromara.wms.service; + + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsHppStorePlaceBo; +import org.dromara.wms.domain.vo.WmsHppStorePlaceVo; +import org.dromara.wms.domain.vo.WmsPsmStorePlaceVo; + +import java.util.Collection; +import java.util.List; + +/** + * 半成品库位Service接口 + * + * @author LionLi + * @date 2025-01-14 + */ +public interface IWmsHppStorePlaceService { + + /** + * 查询半成品库位 + * + * @param objId 主键 + * @return 半成品库位 + */ + WmsHppStorePlaceVo queryById(Long objId); + + /** + * 分页查询半成品库位列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 半成品库位分页列表 + */ + TableDataInfo queryPageList(WmsHppStorePlaceBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的半成品库位列表 + * + * @param bo 查询条件 + * @return 半成品库位列表 + */ + List queryList(WmsHppStorePlaceBo bo); + + /** + * 新增半成品库位 + * + * @param bo 半成品库位 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsHppStorePlaceBo bo); + + /** + * 修改半成品库位 + * + * @param bo 半成品库位 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsHppStorePlaceBo bo); + + /** + * 校验并批量删除半成品库位信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + WmsHppStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppStoreService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppStoreService.java new file mode 100644 index 0000000..a0cedb4 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHppStoreService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsHppStoreBo; +import org.dromara.wms.domain.vo.WmsHppStoreVo; + +import java.util.Collection; +import java.util.List; + +/** + * 【请填写功能名称】Service接口 + * + * @author LionLi + * @date 2025-01-14 + */ +public interface IWmsHppStoreService { + + /** + * 查询【请填写功能名称】 + * + * @param createBy 主键 + * @return 【请填写功能名称】 + */ + WmsHppStoreVo queryById(Long objId); + + /** + * 分页查询【请填写功能名称】列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 【请填写功能名称】分页列表 + */ + TableDataInfo queryPageList(WmsHppStoreBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的【请填写功能名称】列表 + * + * @param bo 查询条件 + * @return 【请填写功能名称】列表 + */ + List queryList(WmsHppStoreBo bo); + + /** + * 新增【请填写功能名称】 + * + * @param bo 【请填写功能名称】 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsHppStoreBo bo); + + /** + * 修改【请填写功能名称】 + * + * @param bo 【请填写功能名称】 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsHppStoreBo bo); + + /** + * 校验并批量删除【请填写功能名称】信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHsmToolingService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHsmToolingService.java new file mode 100644 index 0000000..75ff56a --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsHsmToolingService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsHsmToolingBo; +import org.dromara.wms.domain.vo.WmsHsmToolingVo; + +import java.util.Collection; +import java.util.List; + +/** + * 半成品工装Service接口 + * + * @author LionLi + * @date 2025-01-14 + */ +public interface IWmsHsmToolingService { + + /** + * 查询半成品工装 + * + * @param OBJID 主键 + * @return 半成品工装 + */ + WmsHsmToolingVo queryById(Long objId); + + /** + * 分页查询半成品工装列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 半成品工装分页列表 + */ + TableDataInfo queryPageList(WmsHsmToolingBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的半成品工装列表 + * + * @param bo 查询条件 + * @return 半成品工装列表 + */ + List queryList(WmsHsmToolingBo bo); + + /** + * 新增半成品工装 + * + * @param bo 半成品工装 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsHsmToolingBo bo); + + /** + * 修改半成品工装 + * + * @param bo 半成品工装 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsHsmToolingBo bo); + + /** + * 校验并批量删除半成品工装信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockDetailService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockDetailService.java index b1b1c04..80a200d 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockDetailService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockDetailService.java @@ -47,7 +47,7 @@ public interface IWmsInstockDetailService { * @param bo 入库单-物料 * @return 是否新增成功 */ - Boolean insertByBo(WmsInstockDetailBo bo); + Boolean insertByBo(List bo); /** * 修改入库单-物料 @@ -65,4 +65,6 @@ public interface IWmsInstockDetailService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + int deleteById(Long instockDetailId); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockOrderService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockOrderService.java index b000ceb..747db8f 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockOrderService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInstockOrderService.java @@ -47,7 +47,7 @@ public interface IWmsInstockOrderService { * @param bo 入库单 * @return 是否新增成功 */ - Boolean insertByBo(WmsInstockOrderBo bo); + WmsInstockOrderVo insertByBo(WmsInstockOrderBo bo); /** * 修改入库单 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryCheckRecordService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryCheckRecordService.java new file mode 100644 index 0000000..edfa244 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryCheckRecordService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsInventoryCheckRecordBo; +import org.dromara.wms.domain.vo.WmsInventoryCheckRecordVo; + +import java.util.Collection; +import java.util.List; + +/** + * 盘点记录和调整工单Service接口 + * + * @author LionLi + * @date 2025-01-10 + */ +public interface IWmsInventoryCheckRecordService { + + /** + * 查询盘点记录和调整工单 + * + * @param icRecordId 主键 + * @return 盘点记录和调整工单 + */ + WmsInventoryCheckRecordVo queryById(Long icRecordId); + + /** + * 分页查询盘点记录和调整工单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 盘点记录和调整工单分页列表 + */ + TableDataInfo queryPageList(WmsInventoryCheckRecordBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的盘点记录和调整工单列表 + * + * @param bo 查询条件 + * @return 盘点记录和调整工单列表 + */ + List queryList(WmsInventoryCheckRecordBo bo); + + /** + * 新增盘点记录和调整工单 + * + * @param bo 盘点记录和调整工单 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsInventoryCheckRecordBo bo); + + /** + * 修改盘点记录和调整工单 + * + * @param bo 盘点记录和调整工单 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsInventoryCheckRecordBo bo); + + /** + * 校验并批量删除盘点记录和调整工单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryCheckService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryCheckService.java new file mode 100644 index 0000000..2f6834d --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryCheckService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsInventoryCheckBo; +import org.dromara.wms.domain.vo.WmsInventoryCheckVo; + +import java.util.Collection; +import java.util.List; + +/** + * 库存盘点Service接口 + * + * @author LionLi + * @date 2025-01-10 + */ +public interface IWmsInventoryCheckService { + + /** + * 查询库存盘点 + * + * @param inventoryCheckId 主键 + * @return 库存盘点 + */ + WmsInventoryCheckVo queryById(Long inventoryCheckId); + + /** + * 分页查询库存盘点列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 库存盘点分页列表 + */ + TableDataInfo queryPageList(WmsInventoryCheckBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的库存盘点列表 + * + * @param bo 查询条件 + * @return 库存盘点列表 + */ + List queryList(WmsInventoryCheckBo bo); + + /** + * 新增库存盘点 + * + * @param bo 库存盘点 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsInventoryCheckBo bo); + + /** + * 修改库存盘点 + * + * @param bo 库存盘点 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsInventoryCheckBo bo); + + /** + * 校验并批量删除库存盘点信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryService.java index 62a4013..dc80521 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsInventoryService.java @@ -4,10 +4,13 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.wms.domain.WmsInventory; import org.dromara.wms.domain.bo.WmsInventoryBo; +import org.dromara.wms.domain.bo.WmsMoveOrderBo; import org.dromara.wms.domain.vo.WmsInventoryVo; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; import java.util.List; /** @@ -69,4 +72,13 @@ public interface IWmsInventoryService { Boolean deleteWithValidByIds(Collection ids, Boolean isValid); BigDecimal materailCount(WmsInventory materialId); + HashMap> selectInventorys(WmsMoveOrderBo bo); + + List getMaterialInfoList(WmsInventoryBo bo); + + int updateWmsInventorys(ArrayList updateList); + + int deletePlanList(ArrayList ids); + + TableDataInfo listInventoryAlarm(WmsInventoryBo bo, PageQuery pageQuery); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsMoveOrderService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsMoveOrderService.java new file mode 100644 index 0000000..e3c8df4 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsMoveOrderService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsMoveOrderBo; +import org.dromara.wms.domain.vo.WmsMoveOrderVo; + +import java.util.Collection; +import java.util.List; + +/** + * 移库工单Service接口 + * + * @author LionLi + * @date 2025-01-10 + */ +public interface IWmsMoveOrderService { + + /** + * 查询移库工单 + * + * @param moveId 主键 + * @return 移库工单 + */ + WmsMoveOrderVo queryById(Long moveId); + + /** + * 分页查询移库工单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 移库工单分页列表 + */ + TableDataInfo queryPageList(WmsMoveOrderBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的移库工单列表 + * + * @param bo 查询条件 + * @return 移库工单列表 + */ + List queryList(WmsMoveOrderBo bo); + + /** + * 新增移库工单 + * + * @param bo 移库工单 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsMoveOrderBo bo); + + /** + * 修改移库工单 + * + * @param bo 移库工单 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsMoveOrderBo bo); + + /** + * 校验并批量删除移库工单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsOutstockDetailService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsOutstockDetailService.java index 645d3a2..c68f39e 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsOutstockDetailService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsOutstockDetailService.java @@ -1,5 +1,6 @@ package org.dromara.wms.service; +import org.dromara.common.core.domain.R; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.wms.domain.bo.WmsOutstockDetailBo; @@ -47,7 +48,7 @@ public interface IWmsOutstockDetailService { * @param bo 出库单-物料 * @return 是否新增成功 */ - Boolean insertByBo(WmsOutstockDetailBo bo); + Boolean insertByBo(List bo); /** * 修改出库单-物料 @@ -65,4 +66,6 @@ public interface IWmsOutstockDetailService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + int deleteById(Long outstockDetailId); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsOutstockOrderService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsOutstockOrderService.java index 8900c56..f6e99ef 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsOutstockOrderService.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsOutstockOrderService.java @@ -2,6 +2,7 @@ package org.dromara.wms.service; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.WmsOutstockOrder; import org.dromara.wms.domain.bo.WmsOutstockOrderBo; import org.dromara.wms.domain.vo.WmsOutstockOrderVo; @@ -47,7 +48,7 @@ public interface IWmsOutstockOrderService { * @param bo 出库单 * @return 是否新增成功 */ - Boolean insertByBo(WmsOutstockOrderBo bo); + WmsOutstockOrderVo insertByBo(WmsOutstockOrderBo bo); /** * 修改出库单 diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java new file mode 100644 index 0000000..eb1da3b --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPdaApiService.java @@ -0,0 +1,28 @@ +package org.dromara.wms.service; + +import org.dromara.wms.domain.vo.WmsHppInStockDetailVo; +import org.dromara.wms.domain.vo.WmsHppStorageDetailVo; +import org.dromara.wms.domain.vo.WmsOutstockRecordVo; +import org.dromara.wms.domain.vo.WmsPsmInLoadVo; + +import java.util.List; + +public interface IWmsPdaApiService { + WmsOutstockRecordVo returnSelectCode(String code); + + void rawReturnSubmitUpdateStateById(Long warehouseId); + + WmsPsmInLoadVo productSelectVehicleInfo(String code); + + Boolean bindVehicleSubmit(String vehicleCode, List productList); + + Boolean productSubmitInStoreInfo(WmsPsmInLoadVo vo); + + WmsHppInStockDetailVo semiSelectVehicleInfo(String code); + + Boolean updataInStoreRecord(WmsHppInStockDetailVo vo); + + WmsHppStorageDetailVo selectHppStorageDetailInfobyCode(String code); + + Boolean semiSubmitOutInfo(WmsHppStorageDetailVo vo); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmInLoadDetailService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmInLoadDetailService.java new file mode 100644 index 0000000..b7ae963 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmInLoadDetailService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsPsmInLoadDetailBo; +import org.dromara.wms.domain.vo.WmsPsmInLoadDetailVo; + +import java.util.Collection; +import java.util.List; + +/** + * 装车架子详细信息Service接口 + * + * @author LionLi + * @date 2025-01-15 + */ +public interface IWmsPsmInLoadDetailService { + + /** + * 查询装车架子详细信息 + * + * @param objid 主键 + * @return 装车架子详细信息 + */ + WmsPsmInLoadDetailVo queryById(Long objid); + + /** + * 分页查询装车架子详细信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 装车架子详细信息分页列表 + */ + TableDataInfo queryPageList(WmsPsmInLoadDetailBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的装车架子详细信息列表 + * + * @param bo 查询条件 + * @return 装车架子详细信息列表 + */ + List queryList(WmsPsmInLoadDetailBo bo); + + /** + * 新增装车架子详细信息 + * + * @param bo 装车架子详细信息 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsPsmInLoadDetailBo bo); + + /** + * 修改装车架子详细信息 + * + * @param bo 装车架子详细信息 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsPsmInLoadDetailBo bo); + + /** + * 校验并批量删除装车架子详细信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmInLoadService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmInLoadService.java new file mode 100644 index 0000000..8035796 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmInLoadService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsPsmInLoadBo; +import org.dromara.wms.domain.vo.WmsPsmInLoadVo; + +import java.util.Collection; +import java.util.List; + +/** + * 装车架子信息Service接口 + * + * @author LionLi + * @date 2025-01-15 + */ +public interface IWmsPsmInLoadService { + + /** + * 查询装车架子信息 + * + * @param inLoadId 主键 + * @return 装车架子信息 + */ + WmsPsmInLoadVo queryById(Long inLoadId); + + /** + * 分页查询装车架子信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 装车架子信息分页列表 + */ + TableDataInfo queryPageList(WmsPsmInLoadBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的装车架子信息列表 + * + * @param bo 查询条件 + * @return 装车架子信息列表 + */ + List queryList(WmsPsmInLoadBo bo); + + /** + * 新增装车架子信息 + * + * @param bo 装车架子信息 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsPsmInLoadBo bo); + + /** + * 修改装车架子信息 + * + * @param bo 装车架子信息 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsPsmInLoadBo bo); + + /** + * 校验并批量删除装车架子信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmInStockDetailService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmInStockDetailService.java new file mode 100644 index 0000000..4ac903a --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmInStockDetailService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsPsmInStockDetailBo; +import org.dromara.wms.domain.vo.WmsPsmInStockDetailVo; + +import java.util.Collection; +import java.util.List; + +/** + * 成品入库Service接口 + * + * @author LionLi + * @date 2025-01-15 + */ +public interface IWmsPsmInStockDetailService { + + /** + * 查询成品入库 + * + * @param objid 主键 + * @return 成品入库 + */ + WmsPsmInStockDetailVo queryById(Long objid); + + /** + * 分页查询成品入库列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 成品入库分页列表 + */ + TableDataInfo queryPageList(WmsPsmInStockDetailBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的成品入库列表 + * + * @param bo 查询条件 + * @return 成品入库列表 + */ + List queryList(WmsPsmInStockDetailBo bo); + + /** + * 新增成品入库 + * + * @param bo 成品入库 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsPsmInStockDetailBo bo); + + /** + * 修改成品入库 + * + * @param bo 成品入库 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsPsmInStockDetailBo bo); + + /** + * 校验并批量删除成品入库信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmInStockService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmInStockService.java new file mode 100644 index 0000000..70743db --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmInStockService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsPsmInStockBo; +import org.dromara.wms.domain.vo.WmsPsmInStockVo; + +import java.util.Collection; +import java.util.List; + +/** + * 成品入库记录Service接口 + * + * @author LionLi + * @date 2025-01-15 + */ +public interface IWmsPsmInStockService { + + /** + * 查询成品入库记录 + * + * @param inStockId 主键 + * @return 成品入库记录 + */ + WmsPsmInStockVo queryById(Long inStockId); + + /** + * 分页查询成品入库记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 成品入库记录分页列表 + */ + TableDataInfo queryPageList(WmsPsmInStockBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的成品入库记录列表 + * + * @param bo 查询条件 + * @return 成品入库记录列表 + */ + List queryList(WmsPsmInStockBo bo); + + /** + * 新增成品入库记录 + * + * @param bo 成品入库记录 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsPsmInStockBo bo); + + /** + * 修改成品入库记录 + * + * @param bo 成品入库记录 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsPsmInStockBo bo); + + /** + * 校验并批量删除成品入库记录信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmStorageService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmStorageService.java new file mode 100644 index 0000000..83a1727 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmStorageService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsPsmStorageBo; +import org.dromara.wms.domain.vo.WmsPsmStorageVo; + +import java.util.Collection; +import java.util.List; + +/** + * 成品库存Service接口 + * + * @author LionLi + * @date 2025-01-15 + */ +public interface IWmsPsmStorageService { + + /** + * 查询成品库存 + * + * @param objid 主键 + * @return 成品库存 + */ + WmsPsmStorageVo queryById(Long objid); + + /** + * 分页查询成品库存列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 成品库存分页列表 + */ + TableDataInfo queryPageList(WmsPsmStorageBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的成品库存列表 + * + * @param bo 查询条件 + * @return 成品库存列表 + */ + List queryList(WmsPsmStorageBo bo); + + /** + * 新增成品库存 + * + * @param bo 成品库存 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsPsmStorageBo bo); + + /** + * 修改成品库存 + * + * @param bo 成品库存 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsPsmStorageBo bo); + + /** + * 校验并批量删除成品库存信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmStorePlaceService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmStorePlaceService.java new file mode 100644 index 0000000..c2c3fe5 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmStorePlaceService.java @@ -0,0 +1,71 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.WmsPsmStorePlace; +import org.dromara.wms.domain.bo.WmsPsmStorePlaceBo; +import org.dromara.wms.domain.vo.WmsPsmStorePlaceVo; + +import java.util.Collection; +import java.util.List; + +/** + * 成品库位管理Service接口 + * + * @author LionLi + * @date 2025-01-15 + */ +public interface IWmsPsmStorePlaceService { + + /** + * 查询成品库位管理 + * + * @param storePlaceId 主键 + * @return 成品库位管理 + */ + WmsPsmStorePlaceVo queryById(Long storePlaceId); + + /** + * 分页查询成品库位管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 成品库位管理分页列表 + */ + TableDataInfo queryPageList(WmsPsmStorePlaceBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的成品库位管理列表 + * + * @param bo 查询条件 + * @return 成品库位管理列表 + */ + List queryList(WmsPsmStorePlaceBo bo); + + /** + * 新增成品库位管理 + * + * @param bo 成品库位管理 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsPsmStorePlaceBo bo); + + /** + * 修改成品库位管理 + * + * @param bo 成品库位管理 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsPsmStorePlaceBo bo); + + /** + * 校验并批量删除成品库位管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + WmsPsmStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmStoreService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmStoreService.java new file mode 100644 index 0000000..ef33151 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmStoreService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsPsmStoreBo; +import org.dromara.wms.domain.vo.WmsPsmStoreVo; + +import java.util.Collection; +import java.util.List; + +/** + * 成品仓库管理Service接口 + * + * @author LionLi + * @date 2025-01-15 + */ +public interface IWmsPsmStoreService { + + /** + * 查询成品仓库管理 + * + * @param storeId 主键 + * @return 成品仓库管理 + */ + WmsPsmStoreVo queryById(Long storeId); + + /** + * 分页查询成品仓库管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 成品仓库管理分页列表 + */ + TableDataInfo queryPageList(WmsPsmStoreBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的成品仓库管理列表 + * + * @param bo 查询条件 + * @return 成品仓库管理列表 + */ + List queryList(WmsPsmStoreBo bo); + + /** + * 新增成品仓库管理 + * + * @param bo 成品仓库管理 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsPsmStoreBo bo); + + /** + * 修改成品仓库管理 + * + * @param bo 成品仓库管理 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsPsmStoreBo bo); + + /** + * 校验并批量删除成品仓库管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmStoreTypeService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmStoreTypeService.java new file mode 100644 index 0000000..0c4a13f --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPsmStoreTypeService.java @@ -0,0 +1,68 @@ +package org.dromara.wms.service; + +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.wms.domain.bo.WmsPsmStoreTypeBo; +import org.dromara.wms.domain.vo.WmsPsmStoreTypeVo; + +import java.util.Collection; +import java.util.List; + +/** + * 成品仓库类型Service接口 + * + * @author LionLi + * @date 2025-01-15 + */ +public interface IWmsPsmStoreTypeService { + + /** + * 查询成品仓库类型 + * + * @param storeTypeId 主键 + * @return 成品仓库类型 + */ + WmsPsmStoreTypeVo queryById(Long storeTypeId); + + /** + * 分页查询成品仓库类型列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 成品仓库类型分页列表 + */ + TableDataInfo queryPageList(WmsPsmStoreTypeBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的成品仓库类型列表 + * + * @param bo 查询条件 + * @return 成品仓库类型列表 + */ + List queryList(WmsPsmStoreTypeBo bo); + + /** + * 新增成品仓库类型 + * + * @param bo 成品仓库类型 + * @return 是否新增成功 + */ + Boolean insertByBo(WmsPsmStoreTypeBo bo); + + /** + * 修改成品仓库类型 + * + * @param bo 成品仓库类型 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsPsmStoreTypeBo bo); + + /** + * 校验并批量删除成品仓库类型信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderDetailService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderDetailService.java new file mode 100644 index 0000000..3eb6f5b --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderDetailService.java @@ -0,0 +1,69 @@ +package org.dromara.wms.service; + +import org.dromara.wms.domain.WmsPurchaseOrderDetail; +import org.dromara.wms.domain.vo.WmsPurchaseOrderDetailVo; +import org.dromara.wms.domain.bo.WmsPurchaseOrderDetailBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 采购订单-物料Service接口 + * + * @author ZangCH + * @date 2025-01-08 + */ +public interface IWmsPurchaseOrderDetailService { + + /** + * 查询采购订单-物料 + * + * @param poDId 主键 + * @return 采购订单-物料 + */ + WmsPurchaseOrderDetailVo queryById(Long poDId); + + /** + * 分页查询采购订单-物料列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 采购订单-物料分页列表 + */ + TableDataInfo queryPageList(WmsPurchaseOrderDetailBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的采购订单-物料列表 + * + * @param bo 查询条件 + * @return 采购订单-物料列表 + */ + List queryList(WmsPurchaseOrderDetailBo bo); + + /** + * 新增采购订单-物料 + * + * @param bo 采购订单-物料 + * @return 是否新增成功 + */ + Boolean insertByBo(List bo); + + /** + * 修改采购订单-物料 + * + * @param bo 采购订单-物料 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsPurchaseOrderDetailBo bo); + + /** + * 校验并批量删除采购订单-物料信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderService.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderService.java new file mode 100644 index 0000000..dfbeef1 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/IWmsPurchaseOrderService.java @@ -0,0 +1,69 @@ +package org.dromara.wms.service; + +import org.dromara.wms.domain.WmsPurchaseOrder; +import org.dromara.wms.domain.vo.WmsPurchaseOrderVo; +import org.dromara.wms.domain.bo.WmsPurchaseOrderBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 采购订单Service接口 + * + * @author ZangCH + * @date 2025-01-08 + */ +public interface IWmsPurchaseOrderService { + + /** + * 查询采购订单 + * + * @param poId 主键 + * @return 采购订单 + */ + WmsPurchaseOrderVo queryById(Long poId); + + /** + * 分页查询采购订单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 采购订单分页列表 + */ + TableDataInfo queryPageList(WmsPurchaseOrderBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的采购订单列表 + * + * @param bo 查询条件 + * @return 采购订单列表 + */ + List queryList(WmsPurchaseOrderBo bo); + + /** + * 新增采购订单 + * + * @param bo 采购订单 + * @return 是否新增成功 + */ + WmsPurchaseOrder insertByBo(WmsPurchaseOrderBo bo); + + /** + * 修改采购订单 + * + * @param bo 采购订单 + * @return 是否修改成功 + */ + Boolean updateByBo(WmsPurchaseOrderBo bo); + + /** + * 校验并批量删除采购订单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/BaseMaterialInfoServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/BaseMaterialInfoServiceImpl.java index 1e7cdb2..71e2554 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/BaseMaterialInfoServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/BaseMaterialInfoServiceImpl.java @@ -159,7 +159,9 @@ public class BaseMaterialInfoServiceImpl implements IBaseMaterialInfoService { @Override public List materialList(BaseMaterialInfo materialInfo) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(BaseMaterialInfo::getMaterialCategories,materialInfo.getMaterialCategories()); + if (materialInfo.getMaterialCategories()!=null){ + wrapper.eq(BaseMaterialInfo::getMaterialCategories,materialInfo.getMaterialCategories()); + } return baseMapper.selectVoList(wrapper); } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java new file mode 100644 index 0000000..bc7e192 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderDetailServiceImpl.java @@ -0,0 +1,168 @@ +package org.dromara.wms.service.impl; + +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.BaseMaterialInfo; +import org.dromara.wms.domain.WmsAllocateOrderDetail; +import org.dromara.wms.domain.WmsBaseWarehouse; +import org.dromara.wms.domain.WmsMoveOrder; +import org.dromara.wms.domain.bo.WmsAllocateOrderDetailBo; +import org.dromara.wms.domain.bo.WmsMoveOrderBo; +import org.dromara.wms.domain.vo.WmsAllocateOrderDetailVo; +import org.dromara.wms.mapper.WmsAllocateOrderDetailMapper; +import org.dromara.wms.service.IWmsAllocateOrderDetailService; +import org.springframework.stereotype.Service; + +import java.util.*; + +/** + * 调拨子Service业务层处理 + * + * @author LionLi + * @date 2025-01-09 + */ +@RequiredArgsConstructor +@Service +public class WmsAllocateOrderDetailServiceImpl implements IWmsAllocateOrderDetailService { + + private final WmsAllocateOrderDetailMapper baseMapper; + + /** + * 查询调拨子 + * + * @param aoDId 主键 + * @return 调拨子 + */ + @Override + public WmsAllocateOrderDetailVo queryById(Long aoDId){ + return baseMapper.selectVoById(aoDId); + } + + /** + * 分页查询调拨子列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 调拨子分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsAllocateOrderDetailBo bo, PageQuery pageQuery) { +// LambdaQueryWrapper lqw = buildQueryWrapper(bo); + MPJLambdaWrapper lqw = buildJoinQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的调拨子列表 + * + * @param bo 查询条件 + * @return 调拨子列表 + */ + @Override + public List queryList(WmsAllocateOrderDetailBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(WmsAllocateOrderDetailBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getAoDId() != null, WmsAllocateOrderDetail::getAoDId, bo.getAoDId()); + lqw.eq(StringUtils.isNotBlank(bo.getAllocateCode()), WmsAllocateOrderDetail::getAllocateCode, bo.getAllocateCode()); + lqw.eq(bo.getMaterialId() != null, WmsAllocateOrderDetail::getMaterialId, bo.getMaterialId()); + lqw.eq(bo.getAllocateOrderQty() != null, WmsAllocateOrderDetail::getAllocateOrderQty, bo.getAllocateOrderQty()); + lqw.eq(StringUtils.isNotBlank(bo.getErpSynchronousStatus()), WmsAllocateOrderDetail::getErpSynchronousStatus, bo.getErpSynchronousStatus()); + lqw.eq(bo.getErpSynchronousQty() != null, WmsAllocateOrderDetail::getErpSynchronousQty, bo.getErpSynchronousQty()); + return lqw; + } + private MPJLambdaWrapper buildJoinQueryWrapper(WmsAllocateOrderDetailBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsAllocateOrderDetail.class) + .selectAll(WmsAllocateOrderDetail.class).select(BaseMaterialInfo::getMaterialCode) + .leftJoin(BaseMaterialInfo.class,BaseMaterialInfo::getMaterialId,WmsAllocateOrderDetail::getMaterialId); + lqw.eq(bo.getAoDId() != null, WmsAllocateOrderDetail::getAoDId, bo.getAoDId()); + lqw.eq(StringUtils.isNotBlank(bo.getAllocateCode()), WmsAllocateOrderDetail::getAllocateCode, bo.getAllocateCode()); + lqw.eq(bo.getMaterialId() != null, WmsAllocateOrderDetail::getMaterialId, bo.getMaterialId()); + lqw.eq(bo.getAllocateOrderQty() != null, WmsAllocateOrderDetail::getAllocateOrderQty, bo.getAllocateOrderQty()); + lqw.eq(StringUtils.isNotBlank(bo.getErpSynchronousStatus()), WmsAllocateOrderDetail::getErpSynchronousStatus, bo.getErpSynchronousStatus()); + lqw.eq(bo.getErpSynchronousQty() != null, WmsAllocateOrderDetail::getErpSynchronousQty, bo.getErpSynchronousQty()).orderByDesc(WmsAllocateOrderDetail::getCreateTime); + return lqw; + } + + /** + * 新增调拨子 + * + * @param bo 调拨子 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(List bo) { + ArrayList list = new ArrayList<>(); + for (WmsAllocateOrderDetailBo detailBo : bo) { + WmsAllocateOrderDetail add = MapstructUtils.convert(detailBo, WmsAllocateOrderDetail.class); + list.add(add); + } + + boolean flag = baseMapper.insertBatch(list); +// if (flag) { +// bo.setAoDId(add.getAoDId()); +// } + return flag; + } + + /** + * 修改调拨子 + * + * @param bo 调拨子 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsAllocateOrderDetailBo bo) { + WmsAllocateOrderDetail update = MapstructUtils.convert(bo, WmsAllocateOrderDetail.class); + validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsAllocateOrderDetail entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除调拨子信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + public int deleteById(Long aoDId) { + return baseMapper.deleteById(aoDId); + } + + @Override + public List selectAllocateDetails() { + return null; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java new file mode 100644 index 0000000..01f871a --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsAllocateOrderServiceImpl.java @@ -0,0 +1,220 @@ +package org.dromara.wms.service.impl; + +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.BaseMaterialInfo; +import org.dromara.wms.domain.WmsAllocateOrder; +import org.dromara.wms.domain.WmsBaseWarehouse; +import org.dromara.wms.domain.WmsReturnOrder; +import org.dromara.wms.domain.bo.WmsAllocateOrderBo; +import org.dromara.wms.domain.bo.WmsReturnOrderBo; +import org.dromara.wms.domain.vo.WmsAllocateOrderVo; +import org.dromara.wms.mapper.WmsAllocateOrderMapper; +import org.dromara.wms.mapper.WmsInstockOrderMapper; +import org.dromara.wms.service.IWmsAllocateOrderService; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Collection; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * 调拨工单Service业务层处理 + * + * @author LionLi + * @date 2025-01-09 + */ +@RequiredArgsConstructor +@Service +public class WmsAllocateOrderServiceImpl implements IWmsAllocateOrderService { + + private final WmsAllocateOrderMapper baseMapper; + private static final AtomicInteger sequence = new AtomicInteger(1); + public static Integer nextSequence() { + return sequence.incrementAndGet(); + } + + + /** + * 查询调拨工单 + * + * @param aoId 主键 + * @return 调拨工单 + */ + @Override + public WmsAllocateOrderVo queryById(Long aoId){ + return baseMapper.selectVoById(aoId); + } + + /** + * 分页查询调拨工单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 调拨工单分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsAllocateOrderBo bo, PageQuery pageQuery) { +// LambdaQueryWrapper lqw = buildQueryWrapper(bo); + MPJLambdaWrapper lqw = buildJoinQueryWrapper(bo); + lqw.orderByDesc(WmsAllocateOrder::getCreateTime); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + private MPJLambdaWrapper buildJoinQueryWrapper(WmsAllocateOrderBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsAllocateOrder.class) + .selectAll(WmsAllocateOrder.class) + .selectAs("a",WmsBaseWarehouse::getWarehouseCode,WmsAllocateOrderVo::getPlanWarehouseCode) + .selectAs("b",WmsBaseWarehouse::getWarehouseCode,WmsAllocateOrderVo::getTargetWarehouseCode) + .leftJoin(WmsBaseWarehouse.class,"a",WmsBaseWarehouse::getWarehouseId,WmsAllocateOrder::getPlanWarehouseId) + .leftJoin(WmsBaseWarehouse.class,"b",WmsBaseWarehouse::getWarehouseId,WmsAllocateOrder::getTargetWarehouseId); + lqw.eq(bo.getAoId() != null, WmsAllocateOrder::getAoId, bo.getAoId()); + lqw.eq(StringUtils.isNotBlank(bo.getAllocateOrderCode()), WmsAllocateOrder::getAllocateOrderCode, bo.getAllocateOrderCode()); + lqw.eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsAllocateOrder::getMaterialCategories, bo.getMaterialCategories()); + lqw.eq(bo.getPlanWarehouseId() != null, WmsAllocateOrder::getPlanWarehouseId, bo.getPlanWarehouseId()); + lqw.eq(StringUtils.isNotBlank(bo.getOrderStatus()), WmsAllocateOrder::getOrderStatus, bo.getOrderStatus()); + lqw.eq(bo.getTargetWarehouseId() != null, WmsAllocateOrder::getTargetWarehouseId, bo.getTargetWarehouseId()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsAllocateOrder::getAuditBy, bo.getAuditBy()); + lqw.eq(bo.getAuditTime() != null, WmsAllocateOrder::getAuditTime, bo.getAuditTime()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsAllocateOrder::getAuditStatus, bo.getAuditStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsAllocateOrder::getAuditComments, bo.getAuditComments()); + lqw.eq(StringUtils.isNotBlank(bo.getCreateOut()), WmsAllocateOrder::getCreateOut, bo.getCreateOut()); + lqw.eq(StringUtils.isNotBlank(bo.getOutCode()), WmsAllocateOrder::getOutCode, bo.getOutCode()); + lqw.eq(StringUtils.isNotBlank(bo.getCreateIn()), WmsAllocateOrder::getCreateIn, bo.getCreateIn()); + lqw.eq(StringUtils.isNotBlank(bo.getInCode()), WmsAllocateOrder::getInCode, bo.getInCode()); + lqw.eq(StringUtils.isNotBlank(bo.getInMethod()), WmsAllocateOrder::getInMethod, bo.getInMethod()); + return lqw; + } + /** + * 查询符合条件的调拨工单列表 + * + * @param bo 查询条件 + * @return 调拨工单列表 + */ + @Override + public List queryList(WmsAllocateOrderBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(WmsAllocateOrderBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(bo.getAoId() != null, WmsAllocateOrder::getAoId, bo.getAoId()); + lqw.eq(StringUtils.isNotBlank(bo.getAllocateOrderCode()), WmsAllocateOrder::getAllocateOrderCode, bo.getAllocateOrderCode()); + lqw.eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsAllocateOrder::getMaterialCategories, bo.getMaterialCategories()); + lqw.eq(bo.getPlanWarehouseId() != null, WmsAllocateOrder::getPlanWarehouseId, bo.getPlanWarehouseId()); + lqw.eq(StringUtils.isNotBlank(bo.getOrderStatus()), WmsAllocateOrder::getOrderStatus, bo.getOrderStatus()); + lqw.eq(bo.getTargetWarehouseId() != null, WmsAllocateOrder::getTargetWarehouseId, bo.getTargetWarehouseId()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsAllocateOrder::getAuditBy, bo.getAuditBy()); + lqw.eq(bo.getAuditTime() != null, WmsAllocateOrder::getAuditTime, bo.getAuditTime()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsAllocateOrder::getAuditStatus, bo.getAuditStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsAllocateOrder::getAuditComments, bo.getAuditComments()); + lqw.eq(StringUtils.isNotBlank(bo.getCreateOut()), WmsAllocateOrder::getCreateOut, bo.getCreateOut()); + lqw.eq(StringUtils.isNotBlank(bo.getOutCode()), WmsAllocateOrder::getOutCode, bo.getOutCode()); + lqw.eq(StringUtils.isNotBlank(bo.getCreateIn()), WmsAllocateOrder::getCreateIn, bo.getCreateIn()); + lqw.eq(StringUtils.isNotBlank(bo.getInCode()), WmsAllocateOrder::getInCode, bo.getInCode()); + lqw.eq(StringUtils.isNotBlank(bo.getInMethod()), WmsAllocateOrder::getInMethod, bo.getInMethod()); + return lqw; + } + + /** + * 新增调拨工单 + * + * @param bo 调拨工单 + * @return 是否新增成功 + */ + @Override + public String insertByBo(WmsAllocateOrderBo bo) { + Date date = new Date(); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHssmm"); + String orderDate = format.format(date).substring(2); + String allocate = "AL"; + String allocateIn = "ALIN"; + String allocateOut = "ALOU"; + String orderLast = ""; + Integer value = nextSequence(); + if (value.toString().length()==4){ + sequence.set(1); + orderLast = generateOrder(sequence.get()); + }else { + orderLast = generateOrder(value); + } + String allocateInOrder = ""; + String allocateOutOrder = ""; + String allocateOrder = allocate + orderDate + orderLast; + WmsAllocateOrder add = MapstructUtils.convert(bo, WmsAllocateOrder.class); + add.setAllocateOrderCode(allocateOrder); +// if (bo.getCreateIn().equals("1")){ +// allocateInOrder = allocateIn + orderDate + orderLast; +// add.setInCode(allocateInOrder); +// } +// if (bo.getCreateOut().equals("1")){ +// allocateOutOrder = allocateOut + orderDate + orderLast; +// add.setOutCode(allocateOutOrder); +// } + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setAoId(add.getAoId()); + } + return allocateOrder; + } + public String generateOrder(Integer value){ + if (value.toString().length()<3){ + String fixedLengthString = String.format("%03d", value); + return fixedLengthString; + }else if (value.toString().length()==3){ + return value.toString(); + } + return value.toString(); + } + /** + * 修改调拨工单 + * + * @param bo 调拨工单 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsAllocateOrderBo bo) { + WmsAllocateOrder update = MapstructUtils.convert(bo, WmsAllocateOrder.class); + validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsAllocateOrder entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除调拨工单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsBaseLocationServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsBaseLocationServiceImpl.java index 0cfbaa9..4c89894 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsBaseLocationServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsBaseLocationServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.wms.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -69,6 +70,14 @@ public class WmsBaseLocationServiceImpl implements IWmsBaseLocationService { MPJLambdaWrapper lqw = buildQueryWrapper(bo); return baseMapper.selectVoList(lqw); } + @Override + public List queryVoList(WmsBaseLocationBo bo) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + if (bo.getWarehouseId()!=null){ + lqw.eq(WmsBaseLocation::getWarehouseId,bo.getWarehouseId()); + } + return baseMapper.selectVoList(lqw); + } private MPJLambdaWrapper buildQueryWrapper(WmsBaseLocationBo bo) { Map params = bo.getParams(); diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsConfigurationServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsConfigurationServiceImpl.java index af36f1a..ba50138 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsConfigurationServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsConfigurationServiceImpl.java @@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.common.mybatis.helper.DataPermissionHelper; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.system.api.model.LoginUser; import org.dromara.wms.domain.BaseMaterialInfo; import org.dromara.wms.domain.WmsBaseWarehouse; @@ -123,9 +124,8 @@ public class WmsConfigurationServiceImpl implements IWmsConfigurationService { @Override public Boolean insertByBo(WmsConfigurationBo bo) { WmsConfiguration add = MapstructUtils.convert(bo, WmsConfiguration.class); -// LoginUser currentUser = DataPermissionHelper.getVariable("user"); -// String tenantId = currentUser.getTenantId(); -// add.setTenantId(Integer.valueOf(tenantId)); + String username = LoginHelper.getUsername(); + add.setCreateBy(username); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setConfigurationId(add.getConfigurationId()); @@ -143,6 +143,8 @@ public class WmsConfigurationServiceImpl implements IWmsConfigurationService { public Boolean updateByBo(WmsConfigurationBo bo) { WmsConfiguration update = MapstructUtils.convert(bo, WmsConfiguration.class); validEntityBeforeSave(update); + String username = LoginHelper.getUsername(); + update.setUpdateBy(username); return baseMapper.updateByconfigurationId(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsDeliveryNoteServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsDeliveryNoteServiceImpl.java index 5e90cc5..6b0e83e 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsDeliveryNoteServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsDeliveryNoteServiceImpl.java @@ -120,6 +120,7 @@ public class WmsDeliveryNoteServiceImpl implements IWmsDeliveryNoteService { public Boolean updateByBo(WmsDeliveryNoteBo bo) { WmsDeliveryNote update = MapstructUtils.convert(bo, WmsDeliveryNote.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUserId()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppInStockDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppInStockDetailServiceImpl.java new file mode 100644 index 0000000..386cb38 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppInStockDetailServiceImpl.java @@ -0,0 +1,147 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.WmsHppInStockDetail; +import org.dromara.wms.domain.WmsHppStorePlace; +import org.dromara.wms.domain.bo.WmsHppInStockDetailBo; +import org.dromara.wms.domain.vo.WmsHppInStockDetailVo; +import org.dromara.wms.mapper.WmsHppInStockDetailMapper; +import org.dromara.wms.service.IWmsHppInStockDetailService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 半制品入库Service业务层处理 + * + * @author LionLi + * @date 2025-01-14 + */ +@RequiredArgsConstructor +@Service +public class WmsHppInStockDetailServiceImpl implements IWmsHppInStockDetailService { + + private final WmsHppInStockDetailMapper baseMapper; + + /** + * 查询半制品入库 + * + * @param objId 主键 + * @return 半制品入库 + */ + @Override + public WmsHppInStockDetailVo queryById(Long objId){ + return baseMapper.selectVoById(objId); + } + + /** + * 分页查询半制品入库列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 半制品入库分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsHppInStockDetailBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的半制品入库列表 + * + * @param bo 查询条件 + * @return 半制品入库列表 + */ + @Override + public List queryList(WmsHppInStockDetailBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsHppInStockDetailBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsHppInStockDetail.class) + .selectAll(WmsHppInStockDetail.class).select(WmsHppStorePlace::getStorePlaceCode) + .leftJoin(WmsHppStorePlace.class,WmsHppStorePlace::getObjId,WmsHppInStockDetail::getStorePlaceId) + .eq(bo.getObjId() != null, WmsHppInStockDetail::getObjId, bo.getObjId()) + .eq(StringUtils.isNotBlank(bo.getCardNo()), WmsHppInStockDetail::getCardNo, bo.getCardNo()) + .eq(StringUtils.isNotBlank(bo.getShelfNo()), WmsHppInStockDetail::getShelfNo, bo.getShelfNo()) + .eq(bo.getStorePlaceId() != null, WmsHppInStockDetail::getStorePlaceId, bo.getStorePlaceId()) + .eq(StringUtils.isNotBlank(bo.getGradeCode()), WmsHppInStockDetail::getGradeCode, bo.getGradeCode()) + .eq(StringUtils.isNotBlank(bo.getProductCategory()), WmsHppInStockDetail::getProductCategory, bo.getProductCategory()) + .eq(bo.getMaterialId() != null, WmsHppInStockDetail::getMaterialId, bo.getMaterialId()) + .eq(StringUtils.isNotBlank(bo.getMaterialSpec()), WmsHppInStockDetail::getMaterialSpec, bo.getMaterialSpec()) + .eq(StringUtils.isNotBlank(bo.getInstockType()), WmsHppInStockDetail::getInstockType, bo.getInstockType()) + .orderByDesc(WmsHppInStockDetail::getCreateTime); + return lqw; + } + + /** + * 新增半制品入库 + * + * @param bo 半制品入库 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsHppInStockDetailBo bo) { + WmsHppInStockDetail add = MapstructUtils.convert(bo, WmsHppInStockDetail.class); + String username = LoginHelper.getUsername(); + add.setCreateBy(username); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setObjId(add.getObjId()); + } + return flag; + } + + /** + * 修改半制品入库 + * + * @param bo 半制品入库 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsHppInStockDetailBo bo) { + WmsHppInStockDetail update = MapstructUtils.convert(bo, WmsHppInStockDetail.class); + String username = LoginHelper.getUsername(); + update.setUpdateBy(username); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsHppInStockDetail entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除半制品入库信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppOutStockDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppOutStockDetailServiceImpl.java new file mode 100644 index 0000000..f9aca61 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppOutStockDetailServiceImpl.java @@ -0,0 +1,149 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.WmsBaseWarehouse; +import org.dromara.wms.domain.WmsHppOutStockDetail; +import org.dromara.wms.domain.WmsHppStorePlace; +import org.dromara.wms.domain.bo.WmsHppOutStockDetailBo; +import org.dromara.wms.domain.vo.WmsAllocateOrderVo; +import org.dromara.wms.domain.vo.WmsHppOutStockDetailVo; +import org.dromara.wms.mapper.WmsHppOutStockDetailMapper; +import org.dromara.wms.service.IWmsHppOutStockDetailService; +import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 半成品出库Service业务层处理 + * + * @author LionLi + * @date 2025-01-14 + */ +@RequiredArgsConstructor +@Service +public class WmsHppOutStockDetailServiceImpl implements IWmsHppOutStockDetailService { + + private final WmsHppOutStockDetailMapper baseMapper; + + /** + * 查询半成品出库 + * + * @param objId 主键 + * @return 半成品出库 + */ + @Override + public WmsHppOutStockDetailVo queryById(Long objId){ + return baseMapper.selectVoById(objId); + } + + /** + * 分页查询半成品出库列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 半成品出库分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsHppOutStockDetailBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的半成品出库列表 + * + * @param bo 查询条件 + * @return 半成品出库列表 + */ + @Override + public List queryList(WmsHppOutStockDetailBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsHppOutStockDetailBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsHppOutStockDetail.class) + .selectAll(WmsHppOutStockDetail.class) + .selectAs("a", WmsHppStorePlace::getStorePlaceCode, WmsHppOutStockDetailVo::getStorePlaceCode) + .selectAs("b", WmsHppStorePlace::getStorePlaceCode, WmsHppOutStockDetailVo::getTargertStorePlaceCode) + .leftJoin(WmsHppStorePlace.class,"a",WmsHppStorePlace::getObjId,WmsHppOutStockDetail::getStorePlaceId) + .leftJoin(WmsHppStorePlace.class,"b",WmsHppStorePlace::getObjId,WmsHppOutStockDetail::getTargetStorePlaceId) + .eq(bo.getObjId() != null, WmsHppOutStockDetail::getObjId, bo.getObjId()) + .eq(StringUtils.isNotBlank(bo.getCardNo()), WmsHppOutStockDetail::getCardNo, bo.getCardNo()) + .eq(StringUtils.isNotBlank(bo.getShelfNo()), WmsHppOutStockDetail::getShelfNo, bo.getShelfNo()) + .eq(bo.getStorePlaceId() != null, WmsHppOutStockDetail::getStorePlaceId, bo.getStorePlaceId()) + .eq(StringUtils.isNotBlank(bo.getGradeCode()), WmsHppOutStockDetail::getGradeCode, bo.getGradeCode()) + .eq(StringUtils.isNotBlank(bo.getOutType()), WmsHppOutStockDetail::getOutType, bo.getOutType()) + .eq(bo.getTargetStorePlaceId() != null, WmsHppOutStockDetail::getTargetStorePlaceId, bo.getTargetStorePlaceId()) + .orderByDesc(WmsHppOutStockDetail::getCreateTime); + return lqw; + } + + /** + * 新增半成品出库 + * + * @param bo 半成品出库 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsHppOutStockDetailBo bo) { + WmsHppOutStockDetail add = MapstructUtils.convert(bo, WmsHppOutStockDetail.class); + String username = LoginHelper.getUsername(); + add.setCreateBy(username); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setObjId(add.getObjId()); + } + return flag; + } + + /** + * 修改半成品出库 + * + * @param bo 半成品出库 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsHppOutStockDetailBo bo) { + WmsHppOutStockDetail update = MapstructUtils.convert(bo, WmsHppOutStockDetail.class); + String username = LoginHelper.getUsername(); + update.setUpdateBy(username); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsHppOutStockDetail entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除半成品出库信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStorageDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStorageDetailServiceImpl.java new file mode 100644 index 0000000..10cb91d --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStorageDetailServiceImpl.java @@ -0,0 +1,147 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.WmsHppInStockDetail; +import org.dromara.wms.domain.WmsHppStorageDetail; +import org.dromara.wms.domain.WmsHppStorePlace; +import org.dromara.wms.domain.bo.WmsHppStorageDetailBo; +import org.dromara.wms.domain.vo.WmsHppStorageDetailVo; +import org.dromara.wms.mapper.WmsHppStorageDetailMapper; +import org.dromara.wms.service.IWmsHppStorageDetailService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 半成品库存Service业务层处理 + * + * @author LionLi + * @date 2025-01-14 + */ +@RequiredArgsConstructor +@Service +public class WmsHppStorageDetailServiceImpl implements IWmsHppStorageDetailService { + + private final WmsHppStorageDetailMapper baseMapper; + + /** + * 查询半成品库存 + * + * @param objId 主键 + * @return 半成品库存 + */ + @Override + public WmsHppStorageDetailVo queryById(Long objId){ + return baseMapper.selectVoById(objId); + } + + /** + * 分页查询半成品库存列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 半成品库存分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsHppStorageDetailBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的半成品库存列表 + * + * @param bo 查询条件 + * @return 半成品库存列表 + */ + @Override + public List queryList(WmsHppStorageDetailBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsHppStorageDetailBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsHppStorageDetail.class) + .selectAll(WmsHppStorageDetail.class).select(WmsHppStorePlace::getStorePlaceCode) + .leftJoin(WmsHppStorePlace.class,WmsHppStorePlace::getObjId, WmsHppStorageDetail::getStorePlaceId) + .eq(bo.getObjId() != null, WmsHppStorageDetail::getObjId, bo.getObjId()) + .eq(StringUtils.isNotBlank(bo.getCardNo()), WmsHppStorageDetail::getCardNo, bo.getCardNo()) + .eq(StringUtils.isNotBlank(bo.getShelfNo()), WmsHppStorageDetail::getShelfNo, bo.getShelfNo()) + .eq(StringUtils.isNotBlank(bo.getInstockType()), WmsHppStorageDetail::getInstockType, bo.getInstockType()) + .eq(bo.getMaterialId() != null, WmsHppStorageDetail::getMaterialId, bo.getMaterialId()) + .eq(bo.getStorePlaceId() != null, WmsHppStorageDetail::getStorePlaceId, bo.getStorePlaceId()) + .eq(bo.getSourceNum() != null, WmsHppStorageDetail::getSourceNum, bo.getSourceNum()) + .eq(bo.getStorageNum() != null, WmsHppStorageDetail::getStorageNum, bo.getStorageNum()) + .orderByDesc(WmsHppStorageDetail::getCreateTime); + return lqw; + } + + /** + * 新增半成品库存 + * + * @param bo 半成品库存 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsHppStorageDetailBo bo) { + WmsHppStorageDetail add = MapstructUtils.convert(bo, WmsHppStorageDetail.class); + String username = LoginHelper.getUsername(); + add.setCreateBy(username); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setObjId(add.getObjId()); + } + return flag; + } + + /** + * 修改半成品库存 + * + * @param bo 半成品库存 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsHppStorageDetailBo bo) { + WmsHppStorageDetail update = MapstructUtils.convert(bo, WmsHppStorageDetail.class); + String username = LoginHelper.getUsername(); + update.setUpdateBy(username); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsHppStorageDetail entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除半成品库存信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStorePlaceServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStorePlaceServiceImpl.java new file mode 100644 index 0000000..ea2f2bf --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStorePlaceServiceImpl.java @@ -0,0 +1,148 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.WmsHppStorePlace; +import org.dromara.wms.domain.bo.WmsHppStorePlaceBo; +import org.dromara.wms.domain.vo.WmsHppStorePlaceVo; +import org.dromara.wms.mapper.WmsHppStorePlaceMapper; +import org.dromara.wms.service.IWmsHppStorePlaceService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 半成品库位Service业务层处理 + * + * @author LionLi + * @date 2025-01-14 + */ +@RequiredArgsConstructor +@Service +public class WmsHppStorePlaceServiceImpl implements IWmsHppStorePlaceService { + + private final WmsHppStorePlaceMapper baseMapper; + + /** + * 查询半成品库位 + * + * @param objId 主键 + * @return 半成品库位 + */ + @Override + public WmsHppStorePlaceVo queryById(Long objId){ + return baseMapper.selectVoById(objId); + } + + /** + * 分页查询半成品库位列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 半成品库位分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsHppStorePlaceBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的半成品库位列表 + * + * @param bo 查询条件 + * @return 半成品库位列表 + */ + @Override + public List queryList(WmsHppStorePlaceBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsHppStorePlaceBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsHppStorePlace.class) + .selectAll(WmsHppStorePlace.class) + .eq(bo.getObjId() != null, WmsHppStorePlace::getObjId, bo.getObjId()) + .like(StringUtils.isNotBlank(bo.getStorePlaceName()), WmsHppStorePlace::getStorePlaceName, bo.getStorePlaceName()) + .eq(StringUtils.isNotBlank(bo.getStorePlaceCode()), WmsHppStorePlace::getStorePlaceCode, bo.getStorePlaceCode()) + .eq(bo.getStoreId() != null, WmsHppStorePlace::getStoreId, bo.getStoreId()) + .eq(StringUtils.isNotBlank(bo.getUsedFlag()), WmsHppStorePlace::getUsedFlag, bo.getUsedFlag()) + .eq(StringUtils.isNotBlank(bo.getSpecitialType()), WmsHppStorePlace::getSpecitialType, bo.getSpecitialType()) + .eq(StringUtils.isNotBlank(bo.getPositionType()), WmsHppStorePlace::getPositionType, bo.getPositionType()) + .orderByDesc(WmsHppStorePlace::getCreateTime); + return lqw; + } + + /** + * 新增半成品库位 + * + * @param bo 半成品库位 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsHppStorePlaceBo bo) { + WmsHppStorePlace add = MapstructUtils.convert(bo, WmsHppStorePlace.class); + String username = LoginHelper.getUsername(); + add.setCreateBy(username); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setObjId(add.getObjId()); + } + return flag; + } + + /** + * 修改半成品库位 + * + * @param bo 半成品库位 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsHppStorePlaceBo bo) { + WmsHppStorePlace update = MapstructUtils.convert(bo, WmsHppStorePlace.class); + String username = LoginHelper.getUsername(); + update.setUpdateBy(username); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsHppStorePlace entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除半成品库位信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + public WmsHppStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode) { + return baseMapper.selectStorePlaceInfoByCode(storePlaceCode); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStoreServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStoreServiceImpl.java new file mode 100644 index 0000000..9e20d34 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHppStoreServiceImpl.java @@ -0,0 +1,144 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.WmsHppStore; +import org.dromara.wms.domain.bo.WmsHppStoreBo; +import org.dromara.wms.domain.vo.WmsHppStoreVo; +import org.dromara.wms.mapper.WmsHppStoreMapper; +import org.dromara.wms.service.IWmsHppStoreService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 【请填写功能名称】Service业务层处理 + * + * @author LionLi + * @date 2025-01-14 + */ +@RequiredArgsConstructor +@Service +public class WmsHppStoreServiceImpl implements IWmsHppStoreService { + + private final WmsHppStoreMapper baseMapper; + + /** + * 查询【请填写功能名称】 + * + * @param createBy 主键 + * @return 【请填写功能名称】 + */ + @Override + public WmsHppStoreVo queryById(Long objId){ + return baseMapper.selectVoById(objId); + } + + /** + * 分页查询【请填写功能名称】列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 【请填写功能名称】分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsHppStoreBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的【请填写功能名称】列表 + * + * @param bo 查询条件 + * @return 【请填写功能名称】列表 + */ + @Override + public List queryList(WmsHppStoreBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsHppStoreBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsHppStore.class) + .selectAll(WmsHppStore.class) + .eq(bo.getObjId() != null, WmsHppStore::getObjId, bo.getObjId()) + .like(StringUtils.isNotBlank(bo.getStoreName()), WmsHppStore::getStoreName, bo.getStoreName()) + .eq(StringUtils.isNotBlank(bo.getStoreCode()), WmsHppStore::getStoreCode, bo.getStoreCode()) + .eq(bo.getStoreType() != null, WmsHppStore::getStoreType, bo.getStoreType()) + .eq(StringUtils.isNotBlank(bo.getUsedFlag()), WmsHppStore::getUsedFlag, bo.getUsedFlag()) + .eq(StringUtils.isNotBlank(bo.getSapCode()), WmsHppStore::getSapCode, bo.getSapCode()) + .eq(bo.getStoreLevel() != null, WmsHppStore::getStoreLevel, bo.getStoreLevel()) + .eq(bo.getStoreHigherLevel() != null, WmsHppStore::getStoreHigherLevel, bo.getStoreHigherLevel()) + .orderByDesc(WmsHppStore::getCreateTime); + return lqw; + } + + /** + * 新增【请填写功能名称】 + * + * @param bo 【请填写功能名称】 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsHppStoreBo bo) { + WmsHppStore add = MapstructUtils.convert(bo, WmsHppStore.class); + String username = LoginHelper.getUsername(); + add.setCreateBy(username); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setObjId(add.getObjId()); + } + return flag; + } + + /** + * 修改【请填写功能名称】 + * + * @param bo 【请填写功能名称】 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsHppStoreBo bo) { + WmsHppStore update = MapstructUtils.convert(bo, WmsHppStore.class); + String username = LoginHelper.getUsername(); + update.setUpdateBy(username); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsHppStore entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除【请填写功能名称】信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHsmToolingServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHsmToolingServiceImpl.java new file mode 100644 index 0000000..7570ce2 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsHsmToolingServiceImpl.java @@ -0,0 +1,148 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.WmsHsmTooling; +import org.dromara.wms.domain.bo.WmsHsmToolingBo; +import org.dromara.wms.domain.vo.WmsHsmToolingVo; +import org.dromara.wms.mapper.WmsHsmToolingMapper; +import org.dromara.wms.service.IWmsHsmToolingService; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 半成品工装Service业务层处理 + * + * @author LionLi + * @date 2025-01-14 + */ +@RequiredArgsConstructor +@Service +public class WmsHsmToolingServiceImpl implements IWmsHsmToolingService { + + private final WmsHsmToolingMapper baseMapper; + + /** + * 查询半成品工装 + * + * @param + * @return 半成品工装 + */ + @Override + public WmsHsmToolingVo queryById(Long objId){ + return baseMapper.selectVoById(objId); + } + + /** + * 分页查询半成品工装列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 半成品工装分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsHsmToolingBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的半成品工装列表 + * + * @param bo 查询条件 + * @return 半成品工装列表 + */ + @Override + public List queryList(WmsHsmToolingBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsHsmToolingBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsHsmTooling.class) + .selectAll(WmsHsmTooling.class) + .eq(bo.getObjId() != null, WmsHsmTooling::getObjId, bo.getObjId()) + .eq(StringUtils.isNotBlank(bo.getCreatedBy()), WmsHsmTooling::getCreatedBy, bo.getCreatedBy()) + .eq(bo.getCreatedTime() != null, WmsHsmTooling::getCreatedTime, bo.getCreatedTime()) + .eq(StringUtils.isNotBlank(bo.getUpdatedBy()), WmsHsmTooling::getUpdatedBy, bo.getUpdatedBy()) + .eq(bo.getUpdatedTime() != null, WmsHsmTooling::getUpdatedTime, bo.getUpdatedTime()) + .eq(StringUtils.isNotBlank(bo.getToolingBarcode()), WmsHsmTooling::getToolingBarcode, bo.getToolingBarcode()) + .eq(StringUtils.isNotBlank(bo.getTenantId()), WmsHsmTooling::getTenantId, bo.getTenantId()) + .eq(StringUtils.isNotBlank(bo.getToolingRfidBarcode()), WmsHsmTooling::getToolingRfidBarcode, bo.getToolingRfidBarcode()) + .eq(StringUtils.isNotBlank(bo.getToolingType()), WmsHsmTooling::getToolingType, bo.getToolingType()) + .eq(StringUtils.isNotBlank(bo.getIsUsed()), WmsHsmTooling::getIsUsed, bo.getIsUsed()) + .orderByDesc(WmsHsmTooling::getCreatedTime); + return lqw; + } + + /** + * 新增半成品工装 + * + * @param bo 半成品工装 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsHsmToolingBo bo) { + WmsHsmTooling add = MapstructUtils.convert(bo, WmsHsmTooling.class); + String username = LoginHelper.getUsername(); + add.setCreatedBy(username); + add.setCreatedTime(new Date()); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setObjId(add.getObjId()); + } + return flag; + } + + /** + * 修改半成品工装 + * + * @param bo 半成品工装 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsHsmToolingBo bo) { + WmsHsmTooling update = MapstructUtils.convert(bo, WmsHsmTooling.class); + String username = LoginHelper.getUsername(); + update.setUpdatedBy(username); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsHsmTooling entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除半成品工装信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java index 5813ed2..6f61ff2 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockDetailServiceImpl.java @@ -9,9 +9,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; -import org.dromara.wms.domain.WmsInstockDetail; -import org.dromara.wms.domain.WmsInstockOrder; -import org.dromara.wms.domain.WmsInstockPrint; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.*; +import org.dromara.wms.domain.bo.BaseMaterialInfoBo; +import org.dromara.wms.domain.bo.WmsAllocateOrderDetailBo; import org.dromara.wms.domain.bo.WmsInstockDetailBo; import org.dromara.wms.domain.vo.BaseMaterialInfoVo; import org.dromara.wms.domain.vo.WmsInstockDetailVo; @@ -23,6 +24,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Collection; @@ -109,16 +111,23 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { * @return 是否新增成功 */ @Override - public Boolean insertByBo(WmsInstockDetailBo bo) { - WmsInstockDetail add = MapstructUtils.convert(bo, WmsInstockDetail.class); - BaseMaterialInfoVo baseMaterialInfoVo = baseMaterialInfoService.queryById(bo.getMaterialId()); - BeanUtils.copyProperties(baseMaterialInfoVo,add); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setInstockDetailId(add.getInstockDetailId()); + public Boolean insertByBo(List bo) { + ArrayList list = new ArrayList<>(); + int a = 0; + String username = LoginHelper.getUsername(); + for (WmsInstockDetailBo detailBo : bo) { + BaseMaterialInfoBo baseMaterialInfo = new BaseMaterialInfoBo(); + baseMaterialInfo.setMaterialId(detailBo.getMaterialId()); + List baseMaterialInfoVos = baseMaterialInfoService.queryList(baseMaterialInfo); + WmsInstockDetail add = MapstructUtils.convert(detailBo, WmsInstockDetail.class); + add.setMaterialCode(baseMaterialInfoVos.get(0).getMaterialCode()); + add.setMaterialName(baseMaterialInfoVos.get(0).getMaterialName()); + add.setMaterialSpe(baseMaterialInfoVos.get(0).getMaterialSpec()); + add.setUnitName(baseMaterialInfoVos.get(0).getMaterialUnit()); + add.setCreateBy(username); + a += baseMapper.insert(add); } - return flag; + return a>0; } /** @@ -129,8 +138,10 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { */ @Override public Boolean updateByBo(WmsInstockDetailBo bo) { + String username = LoginHelper.getUsername(); if (bo.getPrintNum()==null){ WmsInstockDetail update = MapstructUtils.convert(bo, WmsInstockDetail.class); + update.setUpdateBy(username); validEntityBeforeSave(update); return baseMapper.updateDetail(update)>0; } @@ -148,11 +159,13 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { wmsInstockPrint.setBatchCode(batchCode); wmsInstockPrint.setApportionQty(bo.getPrintNum().longValue()); wmsInstockPrint.setMaterialQty(bo.getBarcodeNum()); + wmsInstockPrint.setCreateBy(username); int rows = wmsInstockPrintService.insertWmsInstockPrint(wmsInstockPrint); WmsInstockDetail wmsInstockDetail = new WmsInstockDetail(); wmsInstockDetail.setPrintedNum(bo.getPrintedNum()+bo.getPrintNum()); LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(WmsInstockDetail::getInstockDetailId,bo.getInstockDetailId()); + wmsInstockDetail.setUpdateBy(username); int update = baseMapper.update(wmsInstockDetail, updateWrapper); return update>0; } @@ -173,6 +186,11 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService { //TODO 做一些数据校验,如唯一约束 } + @Override + public int deleteById(Long instockDetailId) { + return baseMapper.deleteById(instockDetailId); + } + /** * 校验并批量删除入库单-物料信息 * diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java index 2915c95..8b79e7a 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockOrderServiceImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsBaseWarehouse; import org.dromara.wms.domain.WmsConfiguration; import org.dromara.wms.domain.WmsInstockOrder; @@ -54,7 +55,10 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { @Override public WmsInstockOrderVo queryById(Long instockId){ - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.selectAll(WmsInstockOrder.class).select(WmsBaseWarehouse::getWarehouseCode) + .leftJoin(WmsBaseWarehouse.class,WmsBaseWarehouse::getWarehouseId,WmsInstockOrder::getWarehouseId); wrapper.eq(WmsInstockOrder::getInstockId,instockId); return baseMapper.selectVoOne(wrapper); } @@ -127,7 +131,8 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { * @return 是否新增成功 */ @Override - public Boolean insertByBo(WmsInstockOrderBo bo) { + public WmsInstockOrderVo insertByBo(WmsInstockOrderBo bo) { + String username = LoginHelper.getUsername(); Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHssmm"); String orderDate = format.format(date); @@ -144,13 +149,16 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { WmsInstockOrder add = MapstructUtils.convert(bo, WmsInstockOrder.class); validEntityBeforeSave(add); add.setInstockCode(inStockOrder); + add.setCreateBy(username); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setInstockId(add.getInstockId()); } - return flag; + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(WmsInstockOrder::getInstockCode,inStockOrder); + WmsInstockOrderVo instockOrderVo = baseMapper.selectVoOne(wrapper); + return instockOrderVo; } - public String generateOrder(Integer value){ if (value.toString().length()<3){ String fixedLengthString = String.format("%03d", value); @@ -169,10 +177,12 @@ public class WmsInstockOrderServiceImpl implements IWmsInstockOrderService { */ @Override public Boolean updateByBo(WmsInstockOrderBo bo) { + String username = LoginHelper.getUsername(); WmsInstockOrder update = MapstructUtils.convert(bo, WmsInstockOrder.class); validEntityBeforeSave(update); // LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); // wrapper.eq(WmsInstockOrder::getInstockId,bo.getInstockId()); + update.setUpdateBy(username); int rows = baseMapper.updateInstock(update); return rows > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockPrintServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockPrintServiceImpl.java index 3c3bc18..827d2ba 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockPrintServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockPrintServiceImpl.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.WmsInstockDetail; import org.dromara.wms.domain.WmsInstockPrint; import org.dromara.wms.domain.bo.WmsInstockDetailBo; @@ -127,6 +128,7 @@ public class WmsInstockPrintServiceImpl implements IWmsInstockPrintService { public Boolean updateByBo(WmsInstockPrintBo bo) { WmsInstockPrint update = MapstructUtils.convert(bo, WmsInstockPrint.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockRecordServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockRecordServiceImpl.java index dfa06b3..f566909 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockRecordServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInstockRecordServiceImpl.java @@ -9,6 +9,7 @@ import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.springframework.stereotype.Service; import org.dromara.wms.domain.bo.WmsInstockRecordBo; import org.dromara.wms.domain.vo.WmsInstockRecordVo; @@ -115,6 +116,7 @@ public class WmsInstockRecordServiceImpl implements IWmsInstockRecordService { public Boolean updateByBo(WmsInstockRecordBo bo) { WmsInstockRecord update = MapstructUtils.convert(bo, WmsInstockRecord.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUserId()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java new file mode 100644 index 0000000..80c6c9b --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckRecordServiceImpl.java @@ -0,0 +1,156 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.WmsInventoryCheckRecord; +import org.dromara.wms.domain.bo.WmsInventoryCheckRecordBo; +import org.dromara.wms.domain.vo.WmsInventoryCheckRecordVo; +import org.dromara.wms.mapper.WmsInventoryCheckRecordMapper; +import org.dromara.wms.service.IWmsInventoryCheckRecordService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 盘点记录和调整工单Service业务层处理 + * + * @author LionLi + * @date 2025-01-10 + */ +@RequiredArgsConstructor +@Service +public class WmsInventoryCheckRecordServiceImpl implements IWmsInventoryCheckRecordService { + + private final WmsInventoryCheckRecordMapper baseMapper; + + /** + * 查询盘点记录和调整工单 + * + * @param icRecordId 主键 + * @return 盘点记录和调整工单 + */ + @Override + public WmsInventoryCheckRecordVo queryById(Long icRecordId){ + return baseMapper.selectVoById(icRecordId); + } + + /** + * 分页查询盘点记录和调整工单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 盘点记录和调整工单分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsInventoryCheckRecordBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的盘点记录和调整工单列表 + * + * @param bo 查询条件 + * @return 盘点记录和调整工单列表 + */ + @Override + public List queryList(WmsInventoryCheckRecordBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsInventoryCheckRecordBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsInventoryCheckRecord.class) + .selectAll(WmsInventoryCheckRecord.class) + .eq(bo.getIcRecordId() != null, WmsInventoryCheckRecord::getIcRecordId, bo.getIcRecordId()) + .eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsInventoryCheckRecord::getMaterialCategories, bo.getMaterialCategories()) + .eq(StringUtils.isNotBlank(bo.getCheckCode()), WmsInventoryCheckRecord::getCheckCode, bo.getCheckCode()) + .eq(StringUtils.isNotBlank(bo.getBatchCode()), WmsInventoryCheckRecord::getBatchCode, bo.getBatchCode()) + .eq(bo.getMaterialId() != null, WmsInventoryCheckRecord::getMaterialId, bo.getMaterialId()) + .like(StringUtils.isNotBlank(bo.getLocationCode()), WmsInventoryCheckRecord::getLocationCode, bo.getLocationCode()) + .like(StringUtils.isNotBlank(bo.getMaterialCode()), WmsInventoryCheckRecord::getMaterialCode, bo.getMaterialCode()) + .like(StringUtils.isNotBlank(bo.getMaterialName()), WmsInventoryCheckRecord::getMaterialName, bo.getMaterialName()) + .eq(StringUtils.isNotBlank(bo.getInventoryQty()), WmsInventoryCheckRecord::getInventoryQty, bo.getInventoryQty()) + .eq(bo.getCheckQty() != null, WmsInventoryCheckRecord::getCheckQty, bo.getCheckQty()) + .eq(StringUtils.isNotBlank(bo.getCheckStatus()), WmsInventoryCheckRecord::getCheckStatus, bo.getCheckStatus()) + .eq(StringUtils.isNotBlank(bo.getErpSynchronousStatus()), WmsInventoryCheckRecord::getErpSynchronousStatus, bo.getErpSynchronousStatus()) + .eq(bo.getErpSynchronousQty() != null, WmsInventoryCheckRecord::getErpSynchronousQty, bo.getErpSynchronousQty()) + .eq(StringUtils.isNotBlank(bo.getIsAdjust()), WmsInventoryCheckRecord::getIsAdjust, bo.getIsAdjust()) + .eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsInventoryCheckRecord::getAuditBy, bo.getAuditBy()) + .eq(bo.getAuditTime() != null, WmsInventoryCheckRecord::getAuditTime, bo.getAuditTime()) + .eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsInventoryCheckRecord::getAuditStatus, bo.getAuditStatus()) + .eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsInventoryCheckRecord::getAuditComments, bo.getAuditComments()) + .eq(StringUtils.isNotBlank(bo.getAdjustStatus()), WmsInventoryCheckRecord::getAdjustStatus, bo.getAdjustStatus()) + .eq(StringUtils.isNotBlank(bo.getAdjustType()), WmsInventoryCheckRecord::getAdjustType, bo.getAdjustType()) + .orderByDesc(WmsInventoryCheckRecord::getCreateTime); + return lqw; + } + + /** + * 新增盘点记录和调整工单 + * + * @param bo 盘点记录和调整工单 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsInventoryCheckRecordBo bo) { + WmsInventoryCheckRecord add = MapstructUtils.convert(bo, WmsInventoryCheckRecord.class); + String username = LoginHelper.getUsername(); + add.setCreateBy(username); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setIcRecordId(add.getIcRecordId()); + } + return flag; + } + + /** + * 修改盘点记录和调整工单 + * + * @param bo 盘点记录和调整工单 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsInventoryCheckRecordBo bo) { + WmsInventoryCheckRecord update = MapstructUtils.convert(bo, WmsInventoryCheckRecord.class); + String username = LoginHelper.getUsername(); + update.setUpdateBy(username); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsInventoryCheckRecord entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除盘点记录和调整工单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java new file mode 100644 index 0000000..a08c6af --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryCheckServiceImpl.java @@ -0,0 +1,202 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.WmsBaseWarehouse; +import org.dromara.wms.domain.WmsInstockOrder; +import org.dromara.wms.domain.WmsInventoryCheck; +import org.dromara.wms.domain.bo.WmsInstockOrderBo; +import org.dromara.wms.domain.bo.WmsInventoryCheckBo; +import org.dromara.wms.domain.vo.WmsInventoryCheckVo; +import org.dromara.wms.mapper.WmsInventoryCheckMapper; +import org.dromara.wms.service.IWmsInventoryCheckService; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Collection; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * 库存盘点Service业务层处理 + * + * @author LionLi + * @date 2025-01-10 + */ +@RequiredArgsConstructor +@Service +public class WmsInventoryCheckServiceImpl implements IWmsInventoryCheckService { + + private final WmsInventoryCheckMapper baseMapper; + private static final AtomicInteger sequence = new AtomicInteger(999); + public static Integer nextSequence() { + return sequence.incrementAndGet(); + } + + /** + * 查询库存盘点 + * + * @param inventoryCheckId 主键 + * @return 库存盘点 + */ + @Override + public WmsInventoryCheckVo queryById(Long inventoryCheckId){ + return baseMapper.selectVoById(inventoryCheckId); + } + + /** + * 分页查询库存盘点列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 库存盘点分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsInventoryCheckBo bo, PageQuery pageQuery) { +// MPJLambdaWrapper lqw = buildQueryWrapper(bo); + MPJLambdaWrapper lqw = buildJoinQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的库存盘点列表 + * + * @param bo 查询条件 + * @return 库存盘点列表 + */ + @Override + public List queryList(WmsInventoryCheckBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsInventoryCheckBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsInventoryCheck.class) + .selectAll(WmsInventoryCheck.class) + .eq(bo.getInventoryCheckId() != null, WmsInventoryCheck::getInventoryCheckId, bo.getInventoryCheckId()) + .eq(StringUtils.isNotBlank(bo.getCheckCode()), WmsInventoryCheck::getCheckCode, bo.getCheckCode()) + .eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsInventoryCheck::getMaterialCategories, bo.getMaterialCategories()) + .eq(bo.getPlanWarehouseId() != null, WmsInventoryCheck::getPlanWarehouseId, bo.getPlanWarehouseId()) + .eq(StringUtils.isNotBlank(bo.getCheckType()), WmsInventoryCheck::getCheckType, bo.getCheckType()) + .eq(StringUtils.isNotBlank(bo.getCheckStatus()), WmsInventoryCheck::getCheckStatus, bo.getCheckStatus()) + .eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsInventoryCheck::getAuditBy, bo.getAuditBy()) + .eq(bo.getAuditTime() != null, WmsInventoryCheck::getAuditTime, bo.getAuditTime()) + .eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsInventoryCheck::getAuditStatus, bo.getAuditStatus()) + .eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsInventoryCheck::getAuditComments, bo.getAuditComments()) + .eq(bo.getBeginTime() != null, WmsInventoryCheck::getBeginTime, bo.getBeginTime()) + .eq(bo.getEndTime() != null, WmsInventoryCheck::getEndTime, bo.getEndTime()) + .orderByDesc(WmsInventoryCheck::getCreateTime); + return lqw; + } + private MPJLambdaWrapper buildJoinQueryWrapper(WmsInventoryCheckBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsInventoryCheck.class) + .selectAll(WmsInventoryCheck.class) + .select(WmsBaseWarehouse::getWarehouseCode) + .leftJoin(WmsBaseWarehouse.class, WmsBaseWarehouse::getWarehouseId, WmsInventoryCheck::getPlanWarehouseId); + lqw.eq(bo.getInventoryCheckId() != null, WmsInventoryCheck::getInventoryCheckId, bo.getInventoryCheckId()) + .eq(StringUtils.isNotBlank(bo.getCheckCode()), WmsInventoryCheck::getCheckCode, bo.getCheckCode()) + .eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsInventoryCheck::getMaterialCategories, bo.getMaterialCategories()) + .eq(bo.getPlanWarehouseId() != null, WmsInventoryCheck::getPlanWarehouseId, bo.getPlanWarehouseId()) + .eq(StringUtils.isNotBlank(bo.getCheckType()), WmsInventoryCheck::getCheckType, bo.getCheckType()) + .eq(StringUtils.isNotBlank(bo.getCheckStatus()), WmsInventoryCheck::getCheckStatus, bo.getCheckStatus()) + .eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsInventoryCheck::getAuditBy, bo.getAuditBy()) + .eq(bo.getAuditTime() != null, WmsInventoryCheck::getAuditTime, bo.getAuditTime()) + .eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsInventoryCheck::getAuditStatus, bo.getAuditStatus()) + .eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsInventoryCheck::getAuditComments, bo.getAuditComments()) + .eq(bo.getBeginTime() != null, WmsInventoryCheck::getBeginTime, bo.getBeginTime()) + .eq(bo.getEndTime() != null, WmsInventoryCheck::getEndTime, bo.getEndTime()) + .orderByDesc(WmsInventoryCheck::getCreateTime); + return lqw; + } + + /** + * 新增库存盘点 + * + * @param bo 库存盘点 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsInventoryCheckBo bo) { + String username = LoginHelper.getUsername(); + Date date = new Date(); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHssmm"); + String orderDate = format.format(date).substring(2); + String order = "ST"; + String orderLast=""; + Integer value = nextSequence(); + if (value.toString().length()==4){ + sequence.set(1); + orderLast = generateOrder(sequence.get()); + }else { + orderLast = generateOrder(value); + } + String stockingOrder = order + orderDate + orderLast; + WmsInventoryCheck add = MapstructUtils.convert(bo, WmsInventoryCheck.class); + add.setCheckCode(stockingOrder); + add.setCreateBy(username); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setInventoryCheckId(add.getInventoryCheckId()); + } + return flag; + } + public String generateOrder(Integer value){ + if (value.toString().length()<3){ + String fixedLengthString = String.format("%03d", value); + return fixedLengthString; + }else if (value.toString().length()==3){ + return value.toString(); + } + return value.toString(); + } + + /** + * 修改库存盘点 + * + * @param bo 库存盘点 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsInventoryCheckBo bo) { + WmsInventoryCheck update = MapstructUtils.convert(bo, WmsInventoryCheck.class); + validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsInventoryCheck entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除库存盘点信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java index 67d8c7a..6a6cdbb 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsInventoryServiceImpl.java @@ -10,20 +10,21 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.BaseMaterialInfo; import org.dromara.wms.domain.WmsBaseWarehouse; import org.dromara.wms.domain.WmsConfiguration; import org.dromara.wms.domain.WmsInventory; import org.dromara.wms.domain.bo.WmsConfigurationBo; import org.dromara.wms.domain.bo.WmsInventoryBo; +import org.dromara.wms.domain.bo.WmsMoveOrderBo; import org.dromara.wms.domain.vo.WmsInventoryVo; import org.dromara.wms.mapper.WmsInventoryMapper; import org.dromara.wms.service.IWmsInventoryService; import org.springframework.stereotype.Service; import java.math.BigDecimal; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; import java.util.stream.Collectors; /** @@ -136,6 +137,7 @@ public class WmsInventoryServiceImpl implements IWmsInventoryService { public Boolean updateByBo(WmsInventoryBo bo) { WmsInventory update = MapstructUtils.convert(bo, WmsInventory.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } @@ -146,6 +148,54 @@ public class WmsInventoryServiceImpl implements IWmsInventoryService { //TODO 做一些数据校验,如唯一约束 } + @Override + public int updateWmsInventorys(ArrayList updateList) { + return baseMapper.updateById(updateList).size(); + + } + + @Override + public TableDataInfo listInventoryAlarm(WmsInventoryBo bo, PageQuery pageQuery) { + List wmsInventoryVos = baseMapper.listInventoryAlarm(bo); + Page page = new Page<>(); + page.setRecords(wmsInventoryVos); + page.setTotal(wmsInventoryVos.size()); + page.setCurrent(pageQuery.getPageNum()); + page.setSize(pageQuery.getPageSize()); + return TableDataInfo.build(page); + } + + @Override + public int deletePlanList(ArrayList ids) { + return baseMapper.deleteByIds(ids); + } + + @Override + public List getMaterialInfoList(WmsInventoryBo bo) { + MPJLambdaWrapper lqw = new MPJLambdaWrapper<>(); + lqw.selectAll(WmsInventory.class).select(BaseMaterialInfo::getMaterialCode) + .leftJoin(BaseMaterialInfo.class,BaseMaterialInfo::getMaterialId,WmsInventory::getMaterialId); + lqw.eq(WmsInventory::getLocationCode,bo.getLocationCode()) + .eq(WmsInventory::getMaterialCategories,bo.getMaterialCategories()); + return baseMapper.selectVoList(lqw); + } + + @Override + public HashMap> selectInventorys(WmsMoveOrderBo bo) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(WmsInventory::getLocationCode,bo.getPlanLocationCode()) + .eq(WmsInventory::getMaterialId,bo.getMaterialId()); + List planList = baseMapper.selectVoList(lqw); + LambdaQueryWrapper lqw1 = new LambdaQueryWrapper<>(); + lqw1.eq(WmsInventory::getLocationCode,bo.getTargetLocationCode()) + .eq(WmsInventory::getMaterialId,bo.getMaterialId()); + List targetList = baseMapper.selectVoList(lqw1); + HashMap> result = new HashMap<>(); + result.put("planList",planList); + result.put("targetList",targetList); + return result; + } + @Override public BigDecimal materailCount(WmsInventory wmsInventory) { return baseMapper.materailCount(wmsInventory); diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java new file mode 100644 index 0000000..1b7d9d3 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsMoveOrderServiceImpl.java @@ -0,0 +1,189 @@ +package org.dromara.wms.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.BaseMaterialInfo; +import org.dromara.wms.domain.WmsBaseWarehouse; +import org.dromara.wms.domain.WmsInventory; +import org.dromara.wms.domain.WmsMoveOrder; +import org.dromara.wms.domain.bo.WmsInventoryBo; +import org.dromara.wms.domain.bo.WmsMoveOrderBo; +import org.dromara.wms.domain.vo.WmsInventoryVo; +import org.dromara.wms.domain.vo.WmsMoveOrderVo; +import org.dromara.wms.mapper.WmsMoveOrderMapper; +import org.dromara.wms.service.IWmsInventoryService; +import org.dromara.wms.service.IWmsMoveOrderService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 移库工单Service业务层处理 + * + * @author LionLi + * @date 2025-01-10 + */ +@RequiredArgsConstructor +@Service +public class WmsMoveOrderServiceImpl implements IWmsMoveOrderService { + + private final WmsMoveOrderMapper baseMapper; + @Autowired + private IWmsInventoryService wmsInventoryService; + + /** + * 查询移库工单 + * + * @param moveId 主键 + * @return 移库工单 + */ + @Override + public WmsMoveOrderVo queryById(Long moveId){ + return baseMapper.selectVoById(moveId); + } + + /** + * 分页查询移库工单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 移库工单分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsMoveOrderBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的移库工单列表 + * + * @param bo 查询条件 + * @return 移库工单列表 + */ + @Override + public List queryList(WmsMoveOrderBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsMoveOrderBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsMoveOrder.class) + .selectAll(WmsMoveOrder.class).select(WmsBaseWarehouse::getWarehouseCode).select(BaseMaterialInfo::getMaterialCode) + .leftJoin(WmsBaseWarehouse.class,WmsBaseWarehouse::getWarehouseId,WmsMoveOrder::getWarehouseId) + .leftJoin(BaseMaterialInfo.class,BaseMaterialInfo::getMaterialId,WmsMoveOrder::getMaterialId) + .eq(bo.getMoveId() != null, WmsMoveOrder::getMoveId, bo.getMoveId()) + .eq(bo.getMaterialId() != null, WmsMoveOrder::getMaterialId, bo.getMaterialId()) + .eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsMoveOrder::getMaterialCategories, bo.getMaterialCategories()) + .eq(bo.getWarehouseId() != null, WmsMoveOrder::getWarehouseId, bo.getWarehouseId()) + .like(bo.getPlanLocationCode() != null, WmsMoveOrder::getPlanLocationCode, bo.getPlanLocationCode()) + .eq(StringUtils.isNotBlank(bo.getOrderStatus()), WmsMoveOrder::getOrderStatus, bo.getOrderStatus()) + .like(bo.getTargetLocationCode() != null, WmsMoveOrder::getTargetLocationCode, bo.getTargetLocationCode()) + .eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsMoveOrder::getAuditBy, bo.getAuditBy()) + .eq(bo.getAuditTime() != null, WmsMoveOrder::getAuditTime, bo.getAuditTime()) + .eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsMoveOrder::getAuditStatus, bo.getAuditStatus()) + .eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsMoveOrder::getAuditComments, bo.getAuditComments()) + .eq(StringUtils.isNotBlank(bo.getErpSynchronousStatus()), WmsMoveOrder::getErpSynchronousStatus, bo.getErpSynchronousStatus()) + .eq(bo.getErpSynchronousQty() != null, WmsMoveOrder::getErpSynchronousQty, bo.getErpSynchronousQty()) + .orderByDesc(WmsMoveOrder::getCreateTime); + return lqw; + } + + /** + * 新增移库工单 + * + * @param bo 移库工单 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsMoveOrderBo bo) { + // String username = LoginHelper.getUsername(); + //查询仓库现有的物料数量 + HashMap> list = wmsInventoryService.selectInventorys(bo); + List planList = list.get("planList");//计划库位数据 + if (CollectionUtils.isEmpty(planList)){ + return false; + } + ArrayList updateList = new ArrayList<>(); + ArrayList ids = new ArrayList<>(); + List targetList = list.get("targetList");//目标库位数据 + Map> resultList = targetList.stream().collect(Collectors.groupingBy(WmsInventoryVo::getBatchCode)); + for (WmsInventoryVo vo : planList) { + WmsInventory wmsInventory = new WmsInventory(); + if (CollectionUtils.isEmpty(resultList.get(vo.getBatchCode()))){ + vo.setLocationCode(bo.getTargetLocationCode()); + BeanUtils.copyProperties(vo,wmsInventory); + updateList.add(wmsInventory); + }else { + WmsInventoryVo target = resultList.get(vo.getBatchCode()).get(0); + BigDecimal add = target.getInventoryQty().add(vo.getInventoryQty()); + target.setInventoryQty(add); + BeanUtils.copyProperties(target,wmsInventory); + updateList.add(wmsInventory); + ids.add(vo.getInventoryId()); + } + } + int removeRows = wmsInventoryService.deletePlanList(ids); + int rows = wmsInventoryService.updateWmsInventorys(updateList); + WmsMoveOrder add = MapstructUtils.convert(bo, WmsMoveOrder.class); + // add.setCreateBy(username); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setMoveId(add.getMoveId()); + } + return flag; + } + + /** + * 修改移库工单 + * + * @param bo 移库工单 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsMoveOrderBo bo) { + WmsMoveOrder update = MapstructUtils.convert(bo, WmsMoveOrder.class); + validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsMoveOrder entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除移库工单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockDetailServiceImpl.java index 8e26d9d..5806998 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockDetailServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockDetailServiceImpl.java @@ -10,15 +10,23 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.wms.domain.BaseMaterialInfo; +import org.dromara.wms.domain.WmsInstockDetail; import org.dromara.wms.domain.WmsInventory; import org.dromara.wms.domain.WmsOutstockDetail; +import org.dromara.wms.domain.bo.BaseMaterialInfoBo; +import org.dromara.wms.domain.bo.WmsInstockDetailBo; import org.dromara.wms.domain.bo.WmsOutstockDetailBo; +import org.dromara.wms.domain.vo.BaseMaterialInfoVo; import org.dromara.wms.domain.vo.WmsOutstockDetailVo; import org.dromara.wms.mapper.WmsOutstockDetailMapper; +import org.dromara.wms.service.IBaseMaterialInfoService; import org.dromara.wms.service.IWmsOutstockDetailService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Collection; @@ -35,6 +43,9 @@ public class WmsOutstockDetailServiceImpl implements IWmsOutstockDetailService { private final WmsOutstockDetailMapper baseMapper; + @Autowired + private IBaseMaterialInfoService baseMaterialInfoService; + /** * 查询出库单-物料 * @@ -107,14 +118,22 @@ public class WmsOutstockDetailServiceImpl implements IWmsOutstockDetailService { * @return 是否新增成功 */ @Override - public Boolean insertByBo(WmsOutstockDetailBo bo) { - WmsOutstockDetail add = MapstructUtils.convert(bo, WmsOutstockDetail.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setOutstockDetailId(add.getOutstockDetailId()); + public Boolean insertByBo(List bo) { + String username = LoginHelper.getUsername(); + ArrayList list = new ArrayList<>(); + int rows = 0; + for (WmsOutstockDetailBo detailBo : bo) { + BaseMaterialInfoBo baseMaterialInfo = new BaseMaterialInfoBo(); + baseMaterialInfo.setMaterialId(detailBo.getMaterialId()); + List baseMaterialInfoVos = baseMaterialInfoService.queryList(baseMaterialInfo); + WmsOutstockDetail add = MapstructUtils.convert(detailBo, WmsOutstockDetail.class); + add.setMaterialCode(baseMaterialInfoVos.get(0).getMaterialCode()); + add.setMaterialName(baseMaterialInfoVos.get(0).getMaterialName()); + add.setCreateBy(username); + rows += baseMapper.insert(add); } - return flag; + + return rows>0; } /** @@ -127,6 +146,7 @@ public class WmsOutstockDetailServiceImpl implements IWmsOutstockDetailService { public Boolean updateByBo(WmsOutstockDetailBo bo) { WmsOutstockDetail update = MapstructUtils.convert(bo, WmsOutstockDetail.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } @@ -137,6 +157,11 @@ public class WmsOutstockDetailServiceImpl implements IWmsOutstockDetailService { //TODO 做一些数据校验,如唯一约束 } + @Override + public int deleteById(Long outstockDetailId) { + return baseMapper.deleteById(outstockDetailId); + } + /** * 校验并批量删除出库单-物料信息 * diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockOrderServiceImpl.java index f27af78..ef5eca8 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockOrderServiceImpl.java @@ -1,5 +1,7 @@ package org.dromara.wms.service.impl; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -8,7 +10,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.BaseMaterialInfo; +import org.dromara.wms.domain.WmsBaseWarehouse; +import org.dromara.wms.domain.WmsOutstockDetail; import org.dromara.wms.domain.WmsOutstockOrder; +import org.dromara.wms.domain.bo.WmsOutstockDetailBo; import org.dromara.wms.domain.bo.WmsOutstockOrderBo; import org.dromara.wms.domain.vo.WmsOutstockOrderVo; import org.dromara.wms.mapper.WmsInstockOrderMapper; @@ -59,12 +66,30 @@ public class WmsOutstockOrderServiceImpl implements IWmsOutstockOrderService { */ @Override public TableDataInfo queryPageList(WmsOutstockOrderBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - lqw.orderByDesc(WmsOutstockOrder::getCreateTime); + MPJLambdaWrapper lqw = buildJoinQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } - + private MPJLambdaWrapper buildJoinQueryWrapper(WmsOutstockOrderBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsOutstockOrder.class) + .selectAll(WmsOutstockOrder.class) + .select(WmsBaseWarehouse::getWarehouseCode) + .leftJoin(WmsBaseWarehouse.class, WmsBaseWarehouse::getWarehouseId, WmsOutstockOrder::getWarehouseId); + lqw.eq(bo.getOutstockId() != null, WmsOutstockOrder::getOutstockId, bo.getOutstockId()); + lqw.eq(bo.getWarehouseId() != null, WmsOutstockOrder::getWarehouseId, bo.getWarehouseId()); + lqw.eq(StringUtils.isNotBlank(bo.getOutstockCode()), WmsOutstockOrder::getOutstockCode, bo.getOutstockCode()); + lqw.eq(StringUtils.isNotBlank(bo.getOutstockType()), WmsOutstockOrder::getOutstockType, bo.getOutstockType()); + lqw.eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsOutstockOrder::getMaterialCategories, bo.getMaterialCategories()); + lqw.eq(StringUtils.isNotBlank(bo.getOrderType()), WmsOutstockOrder::getOrderType, bo.getOrderType()); + lqw.eq(StringUtils.isNotBlank(bo.getOrderNo()), WmsOutstockOrder::getOrderNo, bo.getOrderNo()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsOutstockOrder::getAuditBy, bo.getAuditBy()); + lqw.eq(bo.getAuditTime() != null, WmsOutstockOrder::getAuditTime, bo.getAuditTime()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsOutstockOrder::getAuditStatus, bo.getAuditStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsOutstockOrder::getAuditComments, bo.getAuditComments()) + .orderByAsc(WmsOutstockOrder::getCreateTime); + return lqw; + } /** * 查询符合条件的出库单列表 * @@ -101,7 +126,8 @@ public class WmsOutstockOrderServiceImpl implements IWmsOutstockOrderService { * @return 是否新增成功 */ @Override - public Boolean insertByBo(WmsOutstockOrderBo bo) { + public WmsOutstockOrderVo insertByBo(WmsOutstockOrderBo bo) { + String username = LoginHelper.getUsername(); Date date = new Date(); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHssmm"); String orderDate = format.format(date); @@ -118,11 +144,16 @@ public class WmsOutstockOrderServiceImpl implements IWmsOutstockOrderService { WmsOutstockOrder add = MapstructUtils.convert(bo, WmsOutstockOrder.class); validEntityBeforeSave(add); add.setOutstockCode(outStockOrder); + add.setCreateBy(username); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setOutstockId(add.getOutstockId()); } - return flag; + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(WmsOutstockOrder::getOutstockCode,outStockOrder); + List vos = baseMapper.selectVoList(wrapper); + + return vos.get(0); } public String generateOrder(Integer value){ if (value.toString().length()<3){ @@ -144,6 +175,7 @@ public class WmsOutstockOrderServiceImpl implements IWmsOutstockOrderService { public Boolean updateByBo(WmsOutstockOrderBo bo) { WmsOutstockOrder update = MapstructUtils.convert(bo, WmsOutstockOrder.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockRecordServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockRecordServiceImpl.java index 235c0b4..692c31e 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockRecordServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsOutstockRecordServiceImpl.java @@ -10,6 +10,11 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.wms.domain.BaseMaterialInfo; +import org.dromara.wms.domain.WmsReturnOrder; +import org.dromara.wms.domain.bo.WmsReturnOrderBo; +import org.dromara.wms.service.IWmsReturnOrderService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.dromara.wms.domain.bo.WmsOutstockRecordBo; import org.dromara.wms.domain.vo.WmsOutstockRecordVo; @@ -17,6 +22,7 @@ import org.dromara.wms.domain.WmsOutstockRecord; import org.dromara.wms.mapper.WmsOutstockRecordMapper; import org.dromara.wms.service.IWmsOutstockRecordService; +import java.math.BigDecimal; import java.util.List; import java.util.Map; import java.util.Collection; @@ -32,6 +38,10 @@ import java.util.Collection; public class WmsOutstockRecordServiceImpl implements IWmsOutstockRecordService { private final WmsOutstockRecordMapper baseMapper; + @Autowired + private IWmsReturnOrderService wmsReturnOrderService; + + private static String NO_RETURN = "1"; //禁用回退 /** * 查询出库记录 @@ -109,9 +119,24 @@ public class WmsOutstockRecordServiceImpl implements IWmsOutstockRecordService { */ @Override public Boolean updateByBo(WmsOutstockRecordBo bo) { - WmsOutstockRecord update = MapstructUtils.convert(bo, WmsOutstockRecord.class); - validEntityBeforeSave(update); - return baseMapper.updateById(update) > 0; + if (bo.getReturnQty()==null){ + WmsOutstockRecord update = MapstructUtils.convert(bo, WmsOutstockRecord.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + if (bo.getReturnQty().compareTo(bo.getOutstockQty())>0){ + return false; + } + if (bo.getReturnFlag().equals(NO_RETURN)){ + return false; + } + WmsReturnOrderBo wmsReturnOrder = new WmsReturnOrderBo(); + BeanUtils.copyProperties(bo,wmsReturnOrder); + wmsReturnOrder.setPlanLocationCode(bo.getLocationCode()); + wmsReturnOrder.setReturnLocationCode(bo.getReturnLocationCode()); + wmsReturnOrder.setPlanAmount(bo.getReturnQty()); + return wmsReturnOrderService.insertByBo(wmsReturnOrder); + } /** diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java new file mode 100644 index 0000000..36b2c90 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPdaApiServiceImpl.java @@ -0,0 +1,166 @@ +package org.dromara.wms.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.utils.DateUtils; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.wms.domain.*; +import org.dromara.wms.domain.vo.*; +import org.dromara.wms.mapper.*; +import org.dromara.wms.service.IWmsPdaApiService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +@RequiredArgsConstructor +@Service +public class WmsPdaApiServiceImpl implements IWmsPdaApiService { + + private final WmsOutstockRecordMapper wmsOutstockRecordMapper; + private final WmsPdaApiMapper apiMapper; + private final WmsHppInStockDetailMapper baseMapper; + + private final WmsPsmInStockMapper wmsPsmInStockMapper; + private final WmsPsmInLoadDetailMapper wmsPsmInLoadDetailMapper; + + @Override + public WmsOutstockRecordVo returnSelectCode(String code) { + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsOutstockRecord.class) + .selectAll(WmsOutstockRecord.class) + .select(BaseMaterialInfo::getMaterialCode, BaseMaterialInfo::getMaterialName, BaseMaterialInfo::getMaterialUnit, BaseMaterialInfo::getMaterialSpec) + .leftJoin(BaseMaterialInfo.class, BaseMaterialInfo::getMaterialId, WmsOutstockRecord::getMaterialId) + .select(WmsBaseLocation::getWarehouseId) + .leftJoin(WmsBaseLocation.class, WmsBaseLocation::getLocationCode, WmsOutstockRecord::getLocationCode) + .eq(WmsOutstockRecord::getBatchCode, code) + .eq(WmsOutstockRecord::getReturnFlag, 0) + .orderByDesc(WmsOutstockRecord::getCreateTime); + return wmsOutstockRecordMapper.selectVoOne(lqw); + } + + @Override + public void rawReturnSubmitUpdateStateById(Long warehouseId) { + apiMapper.rawReturnSubmitUpdateStateById(warehouseId); + + } + + @Override + public WmsPsmInLoadVo productSelectVehicleInfo(String code) { + return apiMapper.productSelectVehicleInfo(code); + } + + + @Override + public Boolean bindVehicleSubmit(String vehicleCode, List productList) { + String userId = String.valueOf(LoginHelper.getUserId()); + WmsPsmInLoad wmsPsmInLoad = new WmsPsmInLoad(); + wmsPsmInLoad.setToolingBarcode(vehicleCode); + wmsPsmInLoad.setLoadAmount(productList.size()); + wmsPsmInLoad.setCreateBy(userId); + int tag = apiMapper.bindVehicleSubmitInsertInLoad(wmsPsmInLoad); + if (tag == 1) { + apiMapper.bindVehicleSubmitInsertInLoadDetail(wmsPsmInLoad.getInLoadId(), productList); + return true; + } + return false; + } + + + @Translation(type = "Exception") + @Override + public Boolean productSubmitInStoreInfo(WmsPsmInLoadVo vo) { + + // 插入入库记录主表 + WmsPsmInStock wmsPsmInStock = new WmsPsmInStock(); + BeanUtils.copyProperties(vo, wmsPsmInStock); + wmsPsmInStock.setInAmount(vo.getLoadAmount()); + wmsPsmInStock.setCreateBy(LoginHelper.getUserId() + "");//创建人 + int insert = wmsPsmInStockMapper.insert(wmsPsmInStock); + if (insert == 1) { + // 查询成品条码表 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("in_load_id", vo.getInLoadId()); + List list = wmsPsmInLoadDetailMapper.selectList(queryWrapper); + apiMapper.insertInStockDetail(wmsPsmInStock.getInStockId(), list); + apiMapper.insertPsmStorage(list, wmsPsmInStock); + return true; + } + // 插入入库主表 + // WmsPsmInStockBo bo = new WmsPsmInStockBo(); + // bo.setStoreName(vo.getStoreName()); + // bo.setToolingBarcode(vo.getToolingBarcode()); + // bo.setMaterialId(vo.getMaterialId()); + // bo. + + return false; + } + + + @Override + public WmsHppInStockDetailVo semiSelectVehicleInfo(String code) { + return baseMapper.semiSelectVehicleInfo(code); + } + + private final WmsHppInStockDetailMapper hppInStockDetailMapper;//入库记录 + private final WmsHppStorageDetailMapper hppStorageDetailMapper;//库存表 + private final BaseMaterialInfoMapper baseMaterialInfoMapper;//物料基础信息 + + @Override + public Boolean updataInStoreRecord(WmsHppInStockDetailVo vo) { + LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + lambdaUpdateWrapper.eq(WmsHppInStockDetail::getObjId, vo.getObjId()) + .set(WmsHppInStockDetail::getStorePlaceId, vo.getStorePlaceId()) + .set(WmsHppInStockDetail::getUpdateTime, DateUtils.getTime()) + .set(WmsHppInStockDetail::getUpdateBy, LoginHelper.getUsername()); + int rows = hppInStockDetailMapper.update(null, lambdaUpdateWrapper); + if (rows > 0) { + // System.out.println("更新成功"); + WmsHppStorageDetail hppStorageDetail = new WmsHppStorageDetail(); + BeanUtils.copyProperties(vo, hppStorageDetail); + hppStorageDetail.setObjId(null); + hppStorageDetail.setStorageNum(vo.getInstockNum()); + BaseMaterialInfoVo baseMaterialInfoVo = baseMaterialInfoMapper.selectVoById(vo.getMaterialId()); + hppStorageDetail.setMinParkingTime(baseMaterialInfoVo.getMinParkingTime()); + hppStorageDetail.setMaxParkingTime(baseMaterialInfoVo.getMaxParkingTime()); + hppStorageDetailMapper.insert(hppStorageDetail); + return true; + } + + return false; + } + + /** + * 查询半成品库存信息 + * + * @param code 流水卡号 + * @return WmsHppStorageDetailVo + */ + @Override + public WmsHppStorageDetailVo selectHppStorageDetailInfobyCode(String code) { + return hppStorageDetailMapper.selectHppStorageDetailInfobyCode(code); + } + private final WmsHppOutStockDetailMapper hppOutStockDetailMapper;//半成品出库记录 + @Override + public Boolean semiSubmitOutInfo(WmsHppStorageDetailVo vo) { + if (vo.getStorageNum() == vo.getOutNumber()) { + hppStorageDetailMapper.deleteById(vo.getStorePlaceId()); + } else { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(WmsHppStorageDetail::getObjId, vo.getObjId()) + .set(WmsHppStorageDetail::getStorageNum, vo.getStorageNum() - vo.getOutNumber()) + .set(WmsHppStorageDetail::getUpdateTime, DateUtils.getTime()); + hppStorageDetailMapper.update(updateWrapper); + } + WmsHppOutStockDetail outStockDetail = new WmsHppOutStockDetail(); + BeanUtils.copyProperties(vo, outStockDetail); + outStockDetail.setObjId(null); + outStockDetail.setCreateBy(LoginHelper.getUsername()); + hppOutStockDetailMapper.insert(outStockDetail); + return true; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInLoadDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInLoadDetailServiceImpl.java new file mode 100644 index 0000000..9b015d9 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInLoadDetailServiceImpl.java @@ -0,0 +1,139 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.WmsPsmInLoadDetail; +import org.dromara.wms.domain.bo.WmsPsmInLoadDetailBo; +import org.dromara.wms.domain.vo.WmsPsmInLoadDetailVo; +import org.dromara.wms.mapper.WmsPsmInLoadDetailMapper; +import org.dromara.wms.service.IWmsPsmInLoadDetailService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 装车架子详细信息Service业务层处理 + * + * @author LionLi + * @date 2025-01-15 + */ +@RequiredArgsConstructor +@Service +public class WmsPsmInLoadDetailServiceImpl implements IWmsPsmInLoadDetailService { + + private final WmsPsmInLoadDetailMapper baseMapper; + + /** + * 查询装车架子详细信息 + * + * @param objid 主键 + * @return 装车架子详细信息 + */ + @Override + public WmsPsmInLoadDetailVo queryById(Long objid){ + return baseMapper.selectVoById(objid); + } + + /** + * 分页查询装车架子详细信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 装车架子详细信息分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsPsmInLoadDetailBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的装车架子详细信息列表 + * + * @param bo 查询条件 + * @return 装车架子详细信息列表 + */ + @Override + public List queryList(WmsPsmInLoadDetailBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsPsmInLoadDetailBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsPsmInLoadDetail.class) + .selectAll(WmsPsmInLoadDetail.class) + .eq(bo.getObjid() != null, WmsPsmInLoadDetail::getObjid, bo.getObjid()) + .eq(bo.getInLoadId() != null, WmsPsmInLoadDetail::getInLoadId, bo.getInLoadId()) + .eq(bo.getMaterialId() != null, WmsPsmInLoadDetail::getMaterialId, bo.getMaterialId()) + .eq(StringUtils.isNotBlank(bo.getMaterialSpe()), WmsPsmInLoadDetail::getMaterialSpe, bo.getMaterialSpe()) + .eq(StringUtils.isNotBlank(bo.getTyreNo()), WmsPsmInLoadDetail::getTyreNo, bo.getTyreNo()) + .eq(StringUtils.isNotBlank(bo.getCheckGradeCode()), WmsPsmInLoadDetail::getCheckGradeCode, bo.getCheckGradeCode()) + .orderByDesc(WmsPsmInLoadDetail::getCreateTime); + return lqw; + } + + /** + * 新增装车架子详细信息 + * + * @param bo 装车架子详细信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsPsmInLoadDetailBo bo) { + WmsPsmInLoadDetail add = MapstructUtils.convert(bo, WmsPsmInLoadDetail.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setObjid(add.getObjid()); + } + return flag; + } + + /** + * 修改装车架子详细信息 + * + * @param bo 装车架子详细信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsPsmInLoadDetailBo bo) { + WmsPsmInLoadDetail update = MapstructUtils.convert(bo, WmsPsmInLoadDetail.class); + validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsPsmInLoadDetail entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除装车架子详细信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInLoadServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInLoadServiceImpl.java new file mode 100644 index 0000000..caef71a --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInLoadServiceImpl.java @@ -0,0 +1,143 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.WmsPsmInLoad; +import org.dromara.wms.domain.bo.WmsPsmInLoadBo; +import org.dromara.wms.domain.vo.WmsPsmInLoadVo; +import org.dromara.wms.mapper.WmsPsmInLoadMapper; +import org.dromara.wms.service.IWmsPsmInLoadService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 装车架子信息Service业务层处理 + * + * @author LionLi + * @date 2025-01-15 + */ +@RequiredArgsConstructor +@Service +public class WmsPsmInLoadServiceImpl implements IWmsPsmInLoadService { + + private final WmsPsmInLoadMapper baseMapper; + + /** + * 查询装车架子信息 + * + * @param inLoadId 主键 + * @return 装车架子信息 + */ + @Override + public WmsPsmInLoadVo queryById(Long inLoadId){ + return baseMapper.selectVoById(inLoadId); + } + + /** + * 分页查询装车架子信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 装车架子信息分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsPsmInLoadBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的装车架子信息列表 + * + * @param bo 查询条件 + * @return 装车架子信息列表 + */ + @Override + public List queryList(WmsPsmInLoadBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsPsmInLoadBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsPsmInLoad.class) + .selectAll(WmsPsmInLoad.class) + .eq(bo.getInLoadId() != null, WmsPsmInLoad::getInLoadId, bo.getInLoadId()) + .eq(bo.getLoadShift() != null, WmsPsmInLoad::getLoadShift, bo.getLoadShift()) + .eq(bo.getLoadClass() != null, WmsPsmInLoad::getLoadClass, bo.getLoadClass()) + .eq(StringUtils.isNotBlank(bo.getToolingBarcode()), WmsPsmInLoad::getToolingBarcode, bo.getToolingBarcode()) + .like(StringUtils.isNotBlank(bo.getStoreName()), WmsPsmInLoad::getStoreName, bo.getStoreName()) + .eq(StringUtils.isNotBlank(bo.getStorePlaceCode()), WmsPsmInLoad::getStorePlaceCode, bo.getStorePlaceCode()) + .eq(bo.getMaterialId() != null, WmsPsmInLoad::getMaterialId, bo.getMaterialId()) + .eq(StringUtils.isNotBlank(bo.getMaterialSpe()), WmsPsmInLoad::getMaterialSpe, bo.getMaterialSpe()) + .eq(StringUtils.isNotBlank(bo.getCheckGradeCode()), WmsPsmInLoad::getCheckGradeCode, bo.getCheckGradeCode()) + .eq(bo.getLoadAmount() != null, WmsPsmInLoad::getLoadAmount, bo.getLoadAmount()) + .orderByDesc(WmsPsmInLoad::getCreateTime); + return lqw; + } + + /** + * 新增装车架子信息 + * + * @param bo 装车架子信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsPsmInLoadBo bo) { + WmsPsmInLoad add = MapstructUtils.convert(bo, WmsPsmInLoad.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setInLoadId(add.getInLoadId()); + } + return flag; + } + + /** + * 修改装车架子信息 + * + * @param bo 装车架子信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsPsmInLoadBo bo) { + WmsPsmInLoad update = MapstructUtils.convert(bo, WmsPsmInLoad.class); + validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsPsmInLoad entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除装车架子信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInStockDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInStockDetailServiceImpl.java new file mode 100644 index 0000000..524d3ac --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInStockDetailServiceImpl.java @@ -0,0 +1,139 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.WmsPsmInStockDetail; +import org.dromara.wms.domain.bo.WmsPsmInStockDetailBo; +import org.dromara.wms.domain.vo.WmsPsmInStockDetailVo; +import org.dromara.wms.mapper.WmsPsmInStockDetailMapper; +import org.dromara.wms.service.IWmsPsmInStockDetailService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 成品入库Service业务层处理 + * + * @author LionLi + * @date 2025-01-15 + */ +@RequiredArgsConstructor +@Service +public class WmsPsmInStockDetailServiceImpl implements IWmsPsmInStockDetailService { + + private final WmsPsmInStockDetailMapper baseMapper; + + /** + * 查询成品入库 + * + * @param objid 主键 + * @return 成品入库 + */ + @Override + public WmsPsmInStockDetailVo queryById(Long objid){ + return baseMapper.selectVoById(objid); + } + + /** + * 分页查询成品入库列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 成品入库分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsPsmInStockDetailBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的成品入库列表 + * + * @param bo 查询条件 + * @return 成品入库列表 + */ + @Override + public List queryList(WmsPsmInStockDetailBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsPsmInStockDetailBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsPsmInStockDetail.class) + .selectAll(WmsPsmInStockDetail.class) + .eq(bo.getObjid() != null, WmsPsmInStockDetail::getObjid, bo.getObjid()) + .eq(bo.getInStockId() != null, WmsPsmInStockDetail::getInStockId, bo.getInStockId()) + .eq(bo.getMaterialId() != null, WmsPsmInStockDetail::getMaterialId, bo.getMaterialId()) + .eq(StringUtils.isNotBlank(bo.getMaterialSpe()), WmsPsmInStockDetail::getMaterialSpe, bo.getMaterialSpe()) + .eq(StringUtils.isNotBlank(bo.getTyreNo()), WmsPsmInStockDetail::getTyreNo, bo.getTyreNo()) + .eq(StringUtils.isNotBlank(bo.getCheckGradeCode()), WmsPsmInStockDetail::getCheckGradeCode, bo.getCheckGradeCode()) + .orderByDesc(WmsPsmInStockDetail::getCreateTime); + return lqw; + } + + /** + * 新增成品入库 + * + * @param bo 成品入库 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsPsmInStockDetailBo bo) { + WmsPsmInStockDetail add = MapstructUtils.convert(bo, WmsPsmInStockDetail.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setObjid(add.getObjid()); + } + return flag; + } + + /** + * 修改成品入库 + * + * @param bo 成品入库 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsPsmInStockDetailBo bo) { + WmsPsmInStockDetail update = MapstructUtils.convert(bo, WmsPsmInStockDetail.class); + validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsPsmInStockDetail entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除成品入库信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInStockServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInStockServiceImpl.java new file mode 100644 index 0000000..7029644 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmInStockServiceImpl.java @@ -0,0 +1,143 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.WmsPsmInStock; +import org.dromara.wms.domain.bo.WmsPsmInStockBo; +import org.dromara.wms.domain.vo.WmsPsmInStockVo; +import org.dromara.wms.mapper.WmsPsmInStockMapper; +import org.dromara.wms.service.IWmsPsmInStockService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 成品入库记录Service业务层处理 + * + * @author LionLi + * @date 2025-01-15 + */ +@RequiredArgsConstructor +@Service +public class WmsPsmInStockServiceImpl implements IWmsPsmInStockService { + + private final WmsPsmInStockMapper baseMapper; + + /** + * 查询成品入库记录 + * + * @param inStockId 主键 + * @return 成品入库记录 + */ + @Override + public WmsPsmInStockVo queryById(Long inStockId){ + return baseMapper.selectVoById(inStockId); + } + + /** + * 分页查询成品入库记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 成品入库记录分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsPsmInStockBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的成品入库记录列表 + * + * @param bo 查询条件 + * @return 成品入库记录列表 + */ + @Override + public List queryList(WmsPsmInStockBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsPsmInStockBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsPsmInStock.class) + .selectAll(WmsPsmInStock.class) + .eq(bo.getInStockId() != null, WmsPsmInStock::getInStockId, bo.getInStockId()) + .eq(StringUtils.isNotBlank(bo.getInClass()), WmsPsmInStock::getInClass, bo.getInClass()) + .eq(StringUtils.isNotBlank(bo.getInShift()), WmsPsmInStock::getInShift, bo.getInShift()) + .eq(bo.getInAmount() != null, WmsPsmInStock::getInAmount, bo.getInAmount()) + .like(StringUtils.isNotBlank(bo.getStoreName()), WmsPsmInStock::getStoreName, bo.getStoreName()) + .eq(StringUtils.isNotBlank(bo.getStorePlaceCode()), WmsPsmInStock::getStorePlaceCode, bo.getStorePlaceCode()) + .eq(StringUtils.isNotBlank(bo.getToolingBarcode()), WmsPsmInStock::getToolingBarcode, bo.getToolingBarcode()) + .eq(bo.getMaterialId() != null, WmsPsmInStock::getMaterialId, bo.getMaterialId()) + .eq(StringUtils.isNotBlank(bo.getMaterialSpe()), WmsPsmInStock::getMaterialSpe, bo.getMaterialSpe()) + .eq(StringUtils.isNotBlank(bo.getCheckGradeCode()), WmsPsmInStock::getCheckGradeCode, bo.getCheckGradeCode()) + .orderByDesc(WmsPsmInStock::getCreateTime); + return lqw; + } + + /** + * 新增成品入库记录 + * + * @param bo 成品入库记录 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsPsmInStockBo bo) { + WmsPsmInStock add = MapstructUtils.convert(bo, WmsPsmInStock.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setInStockId(add.getInStockId()); + } + return flag; + } + + /** + * 修改成品入库记录 + * + * @param bo 成品入库记录 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsPsmInStockBo bo) { + WmsPsmInStock update = MapstructUtils.convert(bo, WmsPsmInStock.class); + validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsPsmInStock entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除成品入库记录信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStorageServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStorageServiceImpl.java new file mode 100644 index 0000000..46e132e --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStorageServiceImpl.java @@ -0,0 +1,141 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.WmsPsmStorage; +import org.dromara.wms.domain.bo.WmsPsmStorageBo; +import org.dromara.wms.domain.vo.WmsPsmStorageVo; +import org.dromara.wms.mapper.WmsPsmStorageMapper; +import org.dromara.wms.service.IWmsPsmStorageService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 成品库存Service业务层处理 + * + * @author LionLi + * @date 2025-01-15 + */ +@RequiredArgsConstructor +@Service +public class WmsPsmStorageServiceImpl implements IWmsPsmStorageService { + + private final WmsPsmStorageMapper baseMapper; + + /** + * 查询成品库存 + * + * @param objid 主键 + * @return 成品库存 + */ + @Override + public WmsPsmStorageVo queryById(Long objid){ + return baseMapper.selectVoById(objid); + } + + /** + * 分页查询成品库存列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 成品库存分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsPsmStorageBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的成品库存列表 + * + * @param bo 查询条件 + * @return 成品库存列表 + */ + @Override + public List queryList(WmsPsmStorageBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsPsmStorageBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsPsmStorage.class) + .selectAll(WmsPsmStorage.class) + .eq(bo.getObjid() != null, WmsPsmStorage::getObjid, bo.getObjid()) + .eq(bo.getMaterialId() != null, WmsPsmStorage::getMaterialId, bo.getMaterialId()) + .eq(StringUtils.isNotBlank(bo.getMaterialSpe()), WmsPsmStorage::getMaterialSpe, bo.getMaterialSpe()) + .eq(StringUtils.isNotBlank(bo.getTyreNo()), WmsPsmStorage::getTyreNo, bo.getTyreNo()) + .eq(StringUtils.isNotBlank(bo.getCheckGradeCode()), WmsPsmStorage::getCheckGradeCode, bo.getCheckGradeCode()) + .like(StringUtils.isNotBlank(bo.getStoreName()), WmsPsmStorage::getStoreName, bo.getStoreName()) + .eq(StringUtils.isNotBlank(bo.getStorePlaceCode()), WmsPsmStorage::getStorePlaceCode, bo.getStorePlaceCode()) + .eq(StringUtils.isNotBlank(bo.getToolingBarcode()), WmsPsmStorage::getToolingBarcode, bo.getToolingBarcode()) + .orderByDesc(WmsPsmStorage::getCreateTime); + return lqw; + } + + /** + * 新增成品库存 + * + * @param bo 成品库存 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsPsmStorageBo bo) { + WmsPsmStorage add = MapstructUtils.convert(bo, WmsPsmStorage.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setObjid(add.getObjid()); + } + return flag; + } + + /** + * 修改成品库存 + * + * @param bo 成品库存 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsPsmStorageBo bo) { + WmsPsmStorage update = MapstructUtils.convert(bo, WmsPsmStorage.class); + validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsPsmStorage entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除成品库存信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStorePlaceServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStorePlaceServiceImpl.java new file mode 100644 index 0000000..5e2bd71 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStorePlaceServiceImpl.java @@ -0,0 +1,148 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.WmsPsmStore; +import org.dromara.wms.domain.WmsPsmStorePlace; +import org.dromara.wms.domain.bo.WmsPsmStorePlaceBo; +import org.dromara.wms.domain.vo.WmsPsmStorePlaceVo; +import org.dromara.wms.mapper.WmsPsmStorePlaceMapper; +import org.dromara.wms.service.IWmsPsmStorePlaceService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 成品库位管理Service业务层处理 + * + * @author LionLi + * @date 2025-01-15 + */ +@RequiredArgsConstructor +@Service +public class WmsPsmStorePlaceServiceImpl implements IWmsPsmStorePlaceService { + + private final WmsPsmStorePlaceMapper baseMapper; + + /** + * 查询成品库位管理 + * + * @param storePlaceId 主键 + * @return 成品库位管理 + */ + @Override + public WmsPsmStorePlaceVo queryById(Long storePlaceId){ + return baseMapper.selectVoById(storePlaceId); + } + + /** + * 分页查询成品库位管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 成品库位管理分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsPsmStorePlaceBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的成品库位管理列表 + * + * @param bo 查询条件 + * @return 成品库位管理列表 + */ + @Override + public List queryList(WmsPsmStorePlaceBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsPsmStorePlaceBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsPsmStorePlace.class) + .selectAll(WmsPsmStorePlace.class).select(WmsPsmStore::getStoreCode) + .leftJoin(WmsPsmStore.class,WmsPsmStore::getStoreId,WmsPsmStorePlace::getStoreId) + .eq(bo.getStorePlaceId() != null, WmsPsmStorePlace::getStorePlaceId, bo.getStorePlaceId()) + .eq(StringUtils.isNotBlank(bo.getStorePlaceCode()), WmsPsmStorePlace::getStorePlaceCode, bo.getStorePlaceCode()) + .like(StringUtils.isNotBlank(bo.getStorePlaceName()), WmsPsmStorePlace::getStorePlaceName, bo.getStorePlaceName()) + .eq(bo.getStoreId() != null, WmsPsmStorePlace::getStoreId, bo.getStoreId()) + .eq(StringUtils.isNotBlank(bo.getSapCode()), WmsPsmStorePlace::getSapCode, bo.getSapCode()) + .orderByDesc(WmsPsmStorePlace::getCreateTime); + return lqw; + } + + /** + * 新增成品库位管理 + * + * @param bo 成品库位管理 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsPsmStorePlaceBo bo) { + String username = LoginHelper.getUsername(); + WmsPsmStorePlace add = MapstructUtils.convert(bo, WmsPsmStorePlace.class); + add.setCreateBy(username); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setStorePlaceId(add.getStorePlaceId()); + } + return flag; + } + + /** + * 修改成品库位管理 + * + * @param bo 成品库位管理 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsPsmStorePlaceBo bo) { + String username = LoginHelper.getUsername(); + WmsPsmStorePlace update = MapstructUtils.convert(bo, WmsPsmStorePlace.class); + update.setUpdateBy(username); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsPsmStorePlace entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除成品库位管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + public WmsPsmStorePlaceVo selectStorePlaceInfoByCode(String storePlaceCode) { + return baseMapper.selectStorePlaceInfoByCode(storePlaceCode); + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStoreServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStoreServiceImpl.java new file mode 100644 index 0000000..e438143 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStoreServiceImpl.java @@ -0,0 +1,142 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.WmsPsmStore; +import org.dromara.wms.domain.WmsPsmStoreType; +import org.dromara.wms.domain.bo.WmsPsmStoreBo; +import org.dromara.wms.domain.vo.WmsPsmStoreVo; +import org.dromara.wms.mapper.WmsPsmStoreMapper; +import org.dromara.wms.service.IWmsPsmStoreService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 成品仓库管理Service业务层处理 + * + * @author LionLi + * @date 2025-01-15 + */ +@RequiredArgsConstructor +@Service +public class WmsPsmStoreServiceImpl implements IWmsPsmStoreService { + + private final WmsPsmStoreMapper baseMapper; + + /** + * 查询成品仓库管理 + * + * @param storeId 主键 + * @return 成品仓库管理 + */ + @Override + public WmsPsmStoreVo queryById(Long storeId){ + return baseMapper.selectVoById(storeId); + } + + /** + * 分页查询成品仓库管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 成品仓库管理分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsPsmStoreBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的成品仓库管理列表 + * + * @param bo 查询条件 + * @return 成品仓库管理列表 + */ + @Override + public List queryList(WmsPsmStoreBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsPsmStoreBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsPsmStore.class) + .selectAll(WmsPsmStore.class).select(WmsPsmStoreType::getStoreTypeCode) + .leftJoin(WmsPsmStoreType.class,WmsPsmStoreType::getStoreTypeId,WmsPsmStore::getStoreTypeId) + .eq(bo.getStoreId() != null, WmsPsmStore::getStoreId, bo.getStoreId()) + .like(StringUtils.isNotBlank(bo.getStoreName()), WmsPsmStore::getStoreName, bo.getStoreName()) + .eq(StringUtils.isNotBlank(bo.getStoreCode()), WmsPsmStore::getStoreCode, bo.getStoreCode()) + .eq(bo.getStoreTypeId() != null, WmsPsmStore::getStoreTypeId, bo.getStoreTypeId()) + .orderByDesc(WmsPsmStore::getCreateTime); + return lqw; + } + + /** + * 新增成品仓库管理 + * + * @param bo 成品仓库管理 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsPsmStoreBo bo) { + String username = LoginHelper.getUsername(); + WmsPsmStore add = MapstructUtils.convert(bo, WmsPsmStore.class); + add.setCreateBy(username); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setStoreId(add.getStoreId()); + } + return flag; + } + + /** + * 修改成品仓库管理 + * + * @param bo 成品仓库管理 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsPsmStoreBo bo) { + String username = LoginHelper.getUsername(); + WmsPsmStore update = MapstructUtils.convert(bo, WmsPsmStore.class); + update.setUpdateBy(username); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsPsmStore entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除成品仓库管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStoreTypeServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStoreTypeServiceImpl.java new file mode 100644 index 0000000..ce2ea37 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPsmStoreTypeServiceImpl.java @@ -0,0 +1,141 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.WmsPsmStoreType; +import org.dromara.wms.domain.bo.WmsPsmStoreTypeBo; +import org.dromara.wms.domain.vo.WmsPsmStoreTypeVo; +import org.dromara.wms.mapper.WmsPsmStoreTypeMapper; +import org.dromara.wms.service.IWmsPsmStoreTypeService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 成品仓库类型Service业务层处理 + * + * @author LionLi + * @date 2025-01-15 + */ +@RequiredArgsConstructor +@Service +public class WmsPsmStoreTypeServiceImpl implements IWmsPsmStoreTypeService { + + private final WmsPsmStoreTypeMapper baseMapper; + + /** + * 查询成品仓库类型 + * + * @param storeTypeId 主键 + * @return 成品仓库类型 + */ + @Override + public WmsPsmStoreTypeVo queryById(Long storeTypeId){ + return baseMapper.selectVoById(storeTypeId); + } + + /** + * 分页查询成品仓库类型列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 成品仓库类型分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsPsmStoreTypeBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的成品仓库类型列表 + * + * @param bo 查询条件 + * @return 成品仓库类型列表 + */ + @Override + public List queryList(WmsPsmStoreTypeBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsPsmStoreTypeBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsPsmStoreType.class) + .selectAll(WmsPsmStoreType.class) + .eq(bo.getStoreTypeId() != null, WmsPsmStoreType::getStoreTypeId, bo.getStoreTypeId()) + .eq(StringUtils.isNotBlank(bo.getStoreTypeCode()), WmsPsmStoreType::getStoreTypeCode, bo.getStoreTypeCode()) + .like(StringUtils.isNotBlank(bo.getStoreTypeName()), WmsPsmStoreType::getStoreTypeName, bo.getStoreTypeName()) + .eq(StringUtils.isNotBlank(bo.getCheckGradeCode()), WmsPsmStoreType::getCheckGradeCode, bo.getCheckGradeCode()) + .like(StringUtils.isNotBlank(bo.getCheckGradeName()), WmsPsmStoreType::getCheckGradeName, bo.getCheckGradeName()) + .orderByDesc(WmsPsmStoreType::getCreateTime); + return lqw; + } + + /** + * 新增成品仓库类型 + * + * @param bo 成品仓库类型 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(WmsPsmStoreTypeBo bo) { + String username = LoginHelper.getUsername(); + WmsPsmStoreType add = MapstructUtils.convert(bo, WmsPsmStoreType.class); + add.setCreateBy(username); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setStoreTypeId(add.getStoreTypeId()); + } + return flag; + } + + /** + * 修改成品仓库类型 + * + * @param bo 成品仓库类型 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsPsmStoreTypeBo bo) { + String username = LoginHelper.getUsername(); + WmsPsmStoreType update = MapstructUtils.convert(bo, WmsPsmStoreType.class); + update.setUpdateBy(username); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsPsmStoreType entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除成品仓库类型信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java new file mode 100644 index 0000000..d7f7e69 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderDetailServiceImpl.java @@ -0,0 +1,157 @@ +package org.dromara.wms.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.WmsInstockDetail; +import org.dromara.wms.domain.bo.BaseMaterialInfoBo; +import org.dromara.wms.domain.bo.WmsInstockDetailBo; +import org.dromara.wms.domain.vo.BaseMaterialInfoVo; +import org.dromara.wms.service.IBaseMaterialInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.dromara.wms.domain.bo.WmsPurchaseOrderDetailBo; +import org.dromara.wms.domain.vo.WmsPurchaseOrderDetailVo; +import org.dromara.wms.domain.WmsPurchaseOrderDetail; +import org.dromara.wms.mapper.WmsPurchaseOrderDetailMapper; +import org.dromara.wms.service.IWmsPurchaseOrderDetailService; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 采购订单-物料Service业务层处理 + * + * @author ZangCH + * @date 2025-01-08 + */ +@RequiredArgsConstructor +@Service +public class WmsPurchaseOrderDetailServiceImpl implements IWmsPurchaseOrderDetailService { + + private final WmsPurchaseOrderDetailMapper baseMapper; + @Autowired + private IBaseMaterialInfoService baseMaterialInfoService; + + /** + * 查询采购订单-物料 + * + * @param poDId 主键 + * @return 采购订单-物料 + */ + @Override + public WmsPurchaseOrderDetailVo queryById(Long poDId){ + return baseMapper.selectVoById(poDId); + } + + /** + * 分页查询采购订单-物料列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 采购订单-物料分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsPurchaseOrderDetailBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的采购订单-物料列表 + * + * @param bo 查询条件 + * @return 采购订单-物料列表 + */ + @Override + public List queryList(WmsPurchaseOrderDetailBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsPurchaseOrderDetailBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsPurchaseOrderDetail.class) + .selectAll(WmsPurchaseOrderDetail.class) + .eq(StringUtils.isNotBlank(bo.getMaterialCode()), WmsPurchaseOrderDetail::getMaterialCode, bo.getMaterialCode()) + .like(StringUtils.isNotBlank(bo.getMaterialName()), WmsPurchaseOrderDetail::getMaterialName, bo.getMaterialName()) + .eq(StringUtils.isNotBlank(bo.getPoNo()), WmsPurchaseOrderDetail::getPoNo, bo.getPoNo()) + .eq(bo.getTaxPrice() != null, WmsPurchaseOrderDetail::getTaxPrice, bo.getTaxPrice()) + .eq(bo.getPurchaseQty() != null, WmsPurchaseOrderDetail::getPurchaseQty, bo.getPurchaseQty()) + .eq(StringUtils.isNotBlank(bo.getMaterialSpe()), WmsPurchaseOrderDetail::getMaterialSpe, bo.getMaterialSpe()) + .like(StringUtils.isNotBlank(bo.getUnitName()), WmsPurchaseOrderDetail::getUnitName, bo.getUnitName()) + .eq(bo.getDeliveryQty() != null, WmsPurchaseOrderDetail::getDeliveryQty, bo.getDeliveryQty()) + .orderByDesc(WmsPurchaseOrderDetail::getCreateTime); + return lqw; + } + + /** + * 新增采购订单-物料 + * + * @param bo 采购订单-物料 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(List bo) { + ArrayList list = new ArrayList<>(); + int a = 0; + for (WmsPurchaseOrderDetailBo detailBo : bo) { + BaseMaterialInfoBo baseMaterialInfo = new BaseMaterialInfoBo(); + baseMaterialInfo.setMaterialId(detailBo.getMaterialId()); + List baseMaterialInfoVos = baseMaterialInfoService.queryList(baseMaterialInfo); + WmsPurchaseOrderDetail add = MapstructUtils.convert(detailBo, WmsPurchaseOrderDetail.class); + add.setMaterialCode(baseMaterialInfoVos.get(0).getMaterialCode()); + add.setMaterialName(baseMaterialInfoVos.get(0).getMaterialName()); + add.setMaterialSpe(baseMaterialInfoVos.get(0).getMaterialSpec()); + add.setUnitName(baseMaterialInfoVos.get(0).getMaterialUnit()); + a += baseMapper.insert(add); + } + return a>0; + } + + /** + * 修改采购订单-物料 + * + * @param bo 采购订单-物料 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsPurchaseOrderDetailBo bo) { + WmsPurchaseOrderDetail update = MapstructUtils.convert(bo, WmsPurchaseOrderDetail.class); + validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUserId()); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsPurchaseOrderDetail entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除采购订单-物料信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java new file mode 100644 index 0000000..909fb30 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsPurchaseOrderServiceImpl.java @@ -0,0 +1,184 @@ +package org.dromara.wms.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.BaseSupplierInfo; +import org.dromara.wms.domain.WmsInstockOrder; +import org.dromara.wms.domain.vo.WmsInstockOrderVo; +import org.dromara.wms.mapper.WmsInstockOrderMapper; +import org.springframework.stereotype.Service; +import org.dromara.wms.domain.bo.WmsPurchaseOrderBo; +import org.dromara.wms.domain.vo.WmsPurchaseOrderVo; +import org.dromara.wms.domain.WmsPurchaseOrder; +import org.dromara.wms.mapper.WmsPurchaseOrderMapper; +import org.dromara.wms.service.IWmsPurchaseOrderService; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Collection; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * 采购订单Service业务层处理 + * + * @author ZangCH + * @date 2025-01-08 + */ +@RequiredArgsConstructor +@Service +public class WmsPurchaseOrderServiceImpl implements IWmsPurchaseOrderService { + + private final WmsPurchaseOrderMapper baseMapper; + private static final AtomicInteger sequence = new AtomicInteger(0); + public static Integer nextSequence() { + return sequence.incrementAndGet(); + } + + /** + * 查询采购订单 + * + * @param poId 主键 + * @return 采购订单 + */ + @Override + public WmsPurchaseOrderVo queryById(Long poId){ + return baseMapper.selectVoById(poId); + } + + /** + * 分页查询采购订单列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 采购订单分页列表 + */ + @Override + public TableDataInfo queryPageList(WmsPurchaseOrderBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的采购订单列表 + * + * @param bo 查询条件 + * @return 采购订单列表 + */ + @Override + public List queryList(WmsPurchaseOrderBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(WmsPurchaseOrderBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsPurchaseOrder.class) + .selectAll(WmsPurchaseOrder.class) + .select(BaseSupplierInfo::getSupplierCode) + .leftJoin(BaseSupplierInfo.class,BaseSupplierInfo::getSupplierId,WmsPurchaseOrder::getSupplierId) + .eq(StringUtils.isNotBlank(bo.getPoNo()), WmsPurchaseOrder::getPoNo, bo.getPoNo()) + .eq(StringUtils.isNotBlank(bo.getPoStatus()), WmsPurchaseOrder::getPoStatus, bo.getPoStatus()) + .eq(StringUtils.isNotBlank(bo.getPlanDeliveryDate()), WmsPurchaseOrder::getPlanDeliveryDate, bo.getPlanDeliveryDate()) + .eq(bo.getSupplierId() != null, WmsPurchaseOrder::getSupplierId, bo.getSupplierId()) + .eq(StringUtils.isNotBlank(bo.getPoType()), WmsPurchaseOrder::getPoType, bo.getPoType()) + .eq(bo.getErpId() != null, WmsPurchaseOrder::getErpId, bo.getErpId()) + .eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsPurchaseOrder::getMaterialCategories, bo.getMaterialCategories()) + .eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsPurchaseOrder::getAuditBy, bo.getAuditBy()) + .eq(bo.getAuditTime() != null, WmsPurchaseOrder::getAuditTime, bo.getAuditTime()) + .eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsPurchaseOrder::getAuditStatus, bo.getAuditStatus()) + .eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsPurchaseOrder::getAuditComments, bo.getAuditComments()) + .orderByDesc(WmsPurchaseOrder::getCreateTime); + return lqw; + } + + /** + * 新增采购订单 + * + * @param bo 采购订单 + * @return 是否新增成功 + */ + @Override + public WmsPurchaseOrder insertByBo(WmsPurchaseOrderBo bo) { + String username = LoginHelper.getUsername(); + Date date = new Date(); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHssmm"); + String orderDate = format.format(date); + String order = "PUR"; + String orderLast=""; + Integer value = nextSequence(); + if (value.toString().length()==4){ + sequence.set(1); + orderLast = generateOrder(sequence.get()); + }else { + orderLast = generateOrder(value); + } + String purOrder = order + orderDate + orderLast; + WmsPurchaseOrder add = MapstructUtils.convert(bo, WmsPurchaseOrder.class); + validEntityBeforeSave(add); + add.setPoNo(purOrder); + add.setCreateBy(username); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setPoId(add.getPoId()); + } + return add; + } + public String generateOrder(Integer value){ + if (value.toString().length()<3){ + String fixedLengthString = String.format("%03d", value); + return fixedLengthString; + }else if (value.toString().length()==3){ + return value.toString(); + } + return value.toString(); + } + + /** + * 修改采购订单 + * + * @param bo 采购订单 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(WmsPurchaseOrderBo bo) { + WmsPurchaseOrder update = MapstructUtils.convert(bo, WmsPurchaseOrder.class); + String username = LoginHelper.getUsername(); + update.setUpdateBy(username); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(WmsPurchaseOrder entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除采购订单信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReturnOrderServiceImpl.java b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReturnOrderServiceImpl.java index 0a76dd1..3302b34 100644 --- a/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReturnOrderServiceImpl.java +++ b/ruoyi-modules/hwmom-wms/src/main/java/org/dromara/wms/service/impl/WmsReturnOrderServiceImpl.java @@ -1,5 +1,7 @@ package org.dromara.wms.service.impl; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -8,7 +10,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.dromara.common.satoken.utils.LoginHelper; +import org.dromara.wms.domain.BaseMaterialInfo; +import org.dromara.wms.domain.WmsBaseWarehouse; +import org.dromara.wms.domain.WmsOutstockRecord; import org.dromara.wms.domain.WmsReturnOrder; +import org.dromara.wms.domain.bo.WmsOutstockRecordBo; import org.dromara.wms.domain.bo.WmsReturnOrderBo; import org.dromara.wms.domain.vo.WmsReturnOrderVo; import org.dromara.wms.mapper.WmsReturnOrderMapper; @@ -51,8 +58,9 @@ public class WmsReturnOrderServiceImpl implements IWmsReturnOrderService { */ @Override public TableDataInfo queryPageList(WmsReturnOrderBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - lqw.orderByDesc(WmsReturnOrder::getCreateTime); +// LambdaQueryWrapper lqw = buildQueryWrapper(bo); + MPJLambdaWrapper lqw = buildJoinQueryWrapper(bo); +// lqw.orderByDesc(WmsReturnOrder::getCreateTime); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } @@ -68,7 +76,33 @@ public class WmsReturnOrderServiceImpl implements IWmsReturnOrderService { LambdaQueryWrapper lqw = buildQueryWrapper(bo); return baseMapper.selectVoList(lqw); } - + private MPJLambdaWrapper buildJoinQueryWrapper(WmsReturnOrderBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(WmsReturnOrder.class) + .selectAll(WmsReturnOrder.class) + .select(BaseMaterialInfo::getMaterialCode) + .select(WmsBaseWarehouse::getWarehouseCode) + .leftJoin(BaseMaterialInfo.class,BaseMaterialInfo::getMaterialId,WmsReturnOrder::getMaterialId) + .leftJoin(WmsBaseWarehouse.class,WmsBaseWarehouse::getWarehouseId,WmsReturnOrder::getWarehouseId); + lqw.eq(bo.getRoId() != null, WmsReturnOrder::getRoId, bo.getRoId()); + lqw.eq(bo.getMaterialId() != null, WmsReturnOrder::getMaterialId, bo.getMaterialId()); + lqw.eq(StringUtils.isNotBlank(bo.getMaterialCategories()), WmsReturnOrder::getMaterialCategories, bo.getMaterialCategories()); + lqw.eq(StringUtils.isNotBlank(bo.getBatchCode()), WmsReturnOrder::getBatchCode, bo.getBatchCode()); + lqw.eq(bo.getPlanAmount() != null, WmsReturnOrder::getPlanAmount, bo.getPlanAmount()); + lqw.eq(bo.getWarehouseId() != null, WmsReturnOrder::getWarehouseId, bo.getWarehouseId()); + lqw.eq(StringUtils.isNotBlank(bo.getPlanLocationCode()), WmsReturnOrder::getPlanLocationCode, bo.getPlanLocationCode()); + lqw.eq(StringUtils.isNotBlank(bo.getOrderStatus()), WmsReturnOrder::getOrderStatus, bo.getOrderStatus()); + lqw.eq(bo.getReturnAmount() != null, WmsReturnOrder::getReturnAmount, bo.getReturnAmount()); + lqw.eq(StringUtils.isNotBlank(bo.getReturnLocationCode()), WmsReturnOrder::getReturnLocationCode, bo.getReturnLocationCode()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditBy()), WmsReturnOrder::getAuditBy, bo.getAuditBy()); + lqw.eq(bo.getAuditTime() != null, WmsReturnOrder::getAuditTime, bo.getAuditTime()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), WmsReturnOrder::getAuditStatus, bo.getAuditStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getAuditComments()), WmsReturnOrder::getAuditComments, bo.getAuditComments()); + lqw.eq(StringUtils.isNotBlank(bo.getErpSynchronousStatus()), WmsReturnOrder::getErpSynchronousStatus, bo.getErpSynchronousStatus()); + lqw.eq(bo.getErpSynchronousQty() != null, WmsReturnOrder::getErpSynchronousQty, bo.getErpSynchronousQty()); + lqw.orderByDesc(WmsReturnOrder::getCreateTime); + return lqw; + } private LambdaQueryWrapper buildQueryWrapper(WmsReturnOrderBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); @@ -100,6 +134,7 @@ public class WmsReturnOrderServiceImpl implements IWmsReturnOrderService { @Override public Boolean insertByBo(WmsReturnOrderBo bo) { WmsReturnOrder add = MapstructUtils.convert(bo, WmsReturnOrder.class); + validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -118,6 +153,7 @@ public class WmsReturnOrderServiceImpl implements IWmsReturnOrderService { public Boolean updateByBo(WmsReturnOrderBo bo) { WmsReturnOrder update = MapstructUtils.convert(bo, WmsReturnOrder.class); validEntityBeforeSave(update); + update.setUpdateBy(LoginHelper.getUsername()); return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/application.yml b/ruoyi-modules/hwmom-wms/src/main/resources/application.yml index 0d92de0..ae39408 100644 --- a/ruoyi-modules/hwmom-wms/src/main/resources/application.yml +++ b/ruoyi-modules/hwmom-wms/src/main/resources/application.yml @@ -9,7 +9,7 @@ spring: name: hwmom-wms profiles: # 环境配置 - active: @profiles.active@ + active: ${profiles.active} --- # nacos 配置 spring: @@ -22,11 +22,11 @@ spring: discovery: # 注册组 group: @nacos.discovery.group@ - namespace: dlmom + namespace: ${spring.profiles.active} config: # 配置组 group: @nacos.config.group@ - namespace: dlmom + namespace: ${spring.profiles.active} config: import: - optional:nacos:application-common.yml diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsAllocateOrderDetailMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsAllocateOrderDetailMapper.xml new file mode 100644 index 0000000..afe5ded --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsAllocateOrderDetailMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsAllocateOrderMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsAllocateOrderMapper.xml new file mode 100644 index 0000000..77b6703 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsAllocateOrderMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsHppInStockDetailMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsHppInStockDetailMapper.xml new file mode 100644 index 0000000..9062cbc --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsHppInStockDetailMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsHppOutStockDetailMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsHppOutStockDetailMapper.xml new file mode 100644 index 0000000..793d6af --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsHppOutStockDetailMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsHppStoreMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsHppStoreMapper.xml new file mode 100644 index 0000000..aaf790c --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsHppStoreMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsHppStorePlaceMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsHppStorePlaceMapper.xml new file mode 100644 index 0000000..f08a7e3 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsHppStorePlaceMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsHsmToolingMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsHsmToolingMapper.xml new file mode 100644 index 0000000..ff9f7d0 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsHsmToolingMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryCheckMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryCheckMapper.xml new file mode 100644 index 0000000..f92133c --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryCheckMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryMapper.xml index 31f7b5f..d205247 100644 --- a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryMapper.xml +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsInventoryMapper.xml @@ -13,4 +13,43 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where x.material_id = #{entity.materialId} + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsMoveOrderMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsMoveOrderMapper.xml new file mode 100644 index 0000000..5264b40 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsMoveOrderMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml new file mode 100644 index 0000000..092faf3 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPdaApiMapper.xml @@ -0,0 +1,70 @@ + + + + + + + update wms_outstock_record set return_flag= '1' where outstock_record_id=#{warehouseId} + + + + INSERT INTO wms_psm_in_load (tooling_barcode, material_id, material_spe, check_grade_code, + load_amount, material_code) + VALUES (#{wmsPsmInLoad.toolingBarcode}, null, null, null, #{wmsPsmInLoad.loadAmount}, null); + + + + + INSERT INTO wms_psm_in_load_detail (in_load_id, material_id, + material_spe, tyre_no, check_grade_code) + VALUES + + ( #{id}, null, null,#{item}, null) + + + + + + + + + + + + + + + INSERT INTO wms_psm_in_stock_detail (in_stock_id, material_id, material_spe, tyre_no, check_grade_code) + VALUES + + (#{id}, #{item.materialId}, #{item.materialSpe}, #{item.tyreNo},#{item.checkGradeCode} ) + + + + + INSERT INTO wms_psm_storage (create_by, material_id, material_spe, tyre_no, check_grade_code, store_name, + store_place_code, tooling_barcode) + VALUES + + (#{data.createBy}, #{item.materialId}, #{item.materialSpe}, #{item.tyreNo},#{item.checkGradeCode},#{data.storeName}, + #{data.storePlaceCode},#{data.toolingBarcode}) + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmInLoadDetailMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmInLoadDetailMapper.xml new file mode 100644 index 0000000..5d56f6c --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmInLoadDetailMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmInLoadMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmInLoadMapper.xml new file mode 100644 index 0000000..329f6b5 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmInLoadMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmInStockDetailMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmInStockDetailMapper.xml new file mode 100644 index 0000000..fb5c378 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmInStockDetailMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmInStockMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmInStockMapper.xml new file mode 100644 index 0000000..1afb5e3 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmInStockMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmStorageMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmStorageMapper.xml new file mode 100644 index 0000000..f958440 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmStorageMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmStoreMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmStoreMapper.xml new file mode 100644 index 0000000..e1324a5 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmStoreMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmStorePlaceMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmStorePlaceMapper.xml new file mode 100644 index 0000000..f9cff76 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmStorePlaceMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmStoreTypeMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmStoreTypeMapper.xml new file mode 100644 index 0000000..1f637c8 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPsmStoreTypeMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPurchaseOrderDetailMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPurchaseOrderDetailMapper.xml new file mode 100644 index 0000000..7e403c8 --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPurchaseOrderDetailMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPurchaseOrderMapper.xml b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPurchaseOrderMapper.xml new file mode 100644 index 0000000..0550bad --- /dev/null +++ b/ruoyi-modules/hwmom-wms/src/main/resources/mapper/wms/WmsPurchaseOrderMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/pom.xml b/ruoyi-modules/pom.xml index 6756878..ba7a4ae 100644 --- a/ruoyi-modules/pom.xml +++ b/ruoyi-modules/pom.xml @@ -17,6 +17,7 @@ hwmom-mes hwmom-wms hwmom-qms + hwmom-api ruoyi-modules diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/controller.java.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/controller.java.vm index 0dbb6b5..9e3e050 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/controller.java.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/controller.java.vm @@ -119,8 +119,8 @@ public class ${ClassName}Controller extends BaseController { * 下拉框查询${functionName}列表 */ #* @SaCheckPermission("${permissionPrefix}:list")*# - @GetMapping("get${ClassName}List") - public R> get${ClassName}list(${ClassName}Bo bo) { + @GetMapping("/get${ClassName}List") + public R> get${ClassName}List(${ClassName}Bo bo) { List<${ClassName}Vo> list = ${className}Service.queryList(bo); return R.ok(list); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysCodeRuleController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysCodeRuleController.java new file mode 100644 index 0000000..e8c12f0 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysCodeRuleController.java @@ -0,0 +1,127 @@ +package org.dromara.system.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.system.domain.vo.SysCodeRuleVo; +import org.dromara.system.domain.bo.SysCodeRuleBo; +import org.dromara.system.service.ISysCodeRuleService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 编码规则 + * 前端访问路由地址为:/system/codeRule + * + * @author Yinq + * @date 2025-02-11 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/codeRule") +public class SysCodeRuleController extends BaseController { + + private final ISysCodeRuleService sysCodeRuleService; + + /** + * 查询编码规则列表 + */ + @SaCheckPermission("system:codeRule:list") + @GetMapping("/list") + public TableDataInfo list(SysCodeRuleBo bo, PageQuery pageQuery) { + return sysCodeRuleService.queryPageList(bo, pageQuery); + } + + /** + * 导出编码规则列表 + */ + @SaCheckPermission("system:codeRule:export") + @Log(title = "编码规则", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(SysCodeRuleBo bo, HttpServletResponse response) { + List list = sysCodeRuleService.queryList(bo); + ExcelUtil.exportExcel(list, "编码规则", SysCodeRuleVo.class, response); + } + + /** + * 获取编码规则详细信息 + * + * @param codeRuleId 主键 + */ + @SaCheckPermission("system:codeRule:query") + @GetMapping("/{codeRuleId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long codeRuleId) { + return R.ok(sysCodeRuleService.queryById(codeRuleId)); + } + + /** + * 新增编码规则 + */ + @SaCheckPermission("system:codeRule:add") + @Log(title = "编码规则", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SysCodeRuleBo bo) { + return toAjax(sysCodeRuleService.insertByBo(bo)); + } + + /** + * 修改编码规则 + */ + @SaCheckPermission("system:codeRule:edit") + @Log(title = "编码规则", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SysCodeRuleBo bo) { + return toAjax(sysCodeRuleService.updateByBo(bo)); + } + + /** + * 删除编码规则 + * + * @param codeRuleIds 主键串 + */ + @SaCheckPermission("system:codeRule:remove") + @Log(title = "编码规则", businessType = BusinessType.DELETE) + @DeleteMapping("/{codeRuleIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] codeRuleIds) { + return toAjax(sysCodeRuleService.deleteWithValidByIds(List.of(codeRuleIds), true)); + } + + + /** + * 下拉框查询编码规则列表 + */ + @GetMapping("/getSysCodeRuleList") + public R> getSysCodeRuleList(SysCodeRuleBo bo) { + List list = sysCodeRuleService.queryList(bo); + return R.ok(list); + } + + /** + * 获取生成的编码规则 + * @param bo 编码规则编码 + * @return + */ + @GetMapping("/getRuleGenerateCode") + public R getRuleGenerateCode(SysCodeRuleBo bo) { + return R.ok(sysCodeRuleService.getRuleGenerateCode(bo)); + } + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMasterDataController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMasterDataController.java new file mode 100644 index 0000000..c1157c7 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMasterDataController.java @@ -0,0 +1,117 @@ +package org.dromara.system.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.system.domain.vo.SysMasterDataVo; +import org.dromara.system.domain.bo.SysMasterDataBo; +import org.dromara.system.service.ISysMasterDataService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 主数据维护 + * 前端访问路由地址为:/system/masterData + * + * @author Yinq + * @date 2025-01-10 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/masterData") +public class SysMasterDataController extends BaseController { + + private final ISysMasterDataService sysMasterDataService; + + /** + * 查询主数据维护列表 + */ + @SaCheckPermission("system:masterData:list") + @GetMapping("/list") + public TableDataInfo list(SysMasterDataBo bo, PageQuery pageQuery) { + return sysMasterDataService.queryPageList(bo, pageQuery); + } + + /** + * 导出主数据维护列表 + */ + @SaCheckPermission("system:masterData:export") + @Log(title = "主数据维护", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(SysMasterDataBo bo, HttpServletResponse response) { + List list = sysMasterDataService.queryList(bo); + ExcelUtil.exportExcel(list, "主数据维护", SysMasterDataVo.class, response); + } + + /** + * 获取主数据维护详细信息 + * + * @param masterDataId 主键 + */ + @SaCheckPermission("system:masterData:query") + @GetMapping("/{masterDataId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long masterDataId) { + return R.ok(sysMasterDataService.queryById(masterDataId)); + } + + /** + * 新增主数据维护 + */ + @SaCheckPermission("system:masterData:add") + @Log(title = "主数据维护", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SysMasterDataBo bo) { + return toAjax(sysMasterDataService.insertByBo(bo)); + } + + /** + * 修改主数据维护 + */ + @SaCheckPermission("system:masterData:edit") + @Log(title = "主数据维护", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SysMasterDataBo bo) { + return toAjax(sysMasterDataService.updateByBo(bo)); + } + + /** + * 删除主数据维护 + * + * @param masterDataIds 主键串 + */ + @SaCheckPermission("system:masterData:remove") + @Log(title = "主数据维护", businessType = BusinessType.DELETE) + @DeleteMapping("/{masterDataIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] masterDataIds) { + return toAjax(sysMasterDataService.deleteWithValidByIds(List.of(masterDataIds), true)); + } + + + /** + * 下拉框查询主数据维护列表 + */ + + @GetMapping("getSysMasterDataList") + public R> getSysMasterDatalist(SysMasterDataBo bo) { + List list = sysMasterDataService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMasterDataDetailController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMasterDataDetailController.java new file mode 100644 index 0000000..be77256 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/SysMasterDataDetailController.java @@ -0,0 +1,127 @@ +package org.dromara.system.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.system.domain.vo.SysMasterDataDetailVo; +import org.dromara.system.domain.bo.SysMasterDataDetailBo; +import org.dromara.system.service.ISysMasterDataDetailService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 主数据维护明细 + * 前端访问路由地址为:/system/masterDataDetail + * + * @author Yinq + * @date 2025-01-10 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/masterDataDetail") +public class SysMasterDataDetailController extends BaseController { + + private final ISysMasterDataDetailService sysMasterDataDetailService; + + /** + * 查询主数据维护明细列表-列表结构 + */ + @SaCheckPermission("system:masterDataDetail:list") + @GetMapping("/list") + public TableDataInfo list(SysMasterDataDetailBo bo, PageQuery pageQuery) { + return sysMasterDataDetailService.queryPageList(bo, pageQuery); + } + + /** + * 查询主数据维护明细列表-树状结构 + */ + @SaCheckPermission("system:masterDataDetail:list") + @GetMapping("/treeList") + public R> list(SysMasterDataDetailBo bo) { + List list = sysMasterDataDetailService.queryList(bo); + return R.ok(list); + } + + /** + * 导出主数据维护明细列表 + */ + @SaCheckPermission("system:masterDataDetail:export") + @Log(title = "主数据维护明细", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(SysMasterDataDetailBo bo, HttpServletResponse response) { + List list = sysMasterDataDetailService.queryList(bo); + ExcelUtil.exportExcel(list, "主数据维护明细", SysMasterDataDetailVo.class, response); + } + + /** + * 获取主数据维护明细详细信息 + * + * @param masterDataDetailId 主键 + */ + @SaCheckPermission("system:masterDataDetail:query") + @GetMapping("/{masterDataDetailId}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long masterDataDetailId) { + return R.ok(sysMasterDataDetailService.queryById(masterDataDetailId)); + } + + /** + * 新增主数据维护明细 + */ + @SaCheckPermission("system:masterDataDetail:add") + @Log(title = "主数据维护明细", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody SysMasterDataDetailBo bo) { + return toAjax(sysMasterDataDetailService.insertByBo(bo)); + } + + /** + * 修改主数据维护明细 + */ + @SaCheckPermission("system:masterDataDetail:edit") + @Log(title = "主数据维护明细", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SysMasterDataDetailBo bo) { + return toAjax(sysMasterDataDetailService.updateByBo(bo)); + } + + /** + * 删除主数据维护明细 + * + * @param masterDataDetailIds 主键串 + */ + @SaCheckPermission("system:masterDataDetail:remove") + @Log(title = "主数据维护明细", businessType = BusinessType.DELETE) + @DeleteMapping("/{masterDataDetailIds}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] masterDataDetailIds) { + return toAjax(sysMasterDataDetailService.deleteWithValidByIds(List.of(masterDataDetailIds), true)); + } + + + /** + * 下拉框查询主数据维护明细列表 + */ + + @GetMapping("getSysMasterDataDetailList") + public R> getSysMasterDataDetaillist(SysMasterDataDetailBo bo) { + List list = sysMasterDataDetailService.queryList(bo); + return R.ok(list); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysMenuController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysMenuController.java index 5edb6f6..2ca0cd3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysMenuController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysMenuController.java @@ -47,6 +47,16 @@ public class SysMenuController extends BaseController { List menus = menuService.selectMenuTreeByUserId(LoginHelper.getUserId()); return R.ok(menuService.buildMenus(menus)); } + /** + * 获取路由信息 + * + * @return 路由信息 + */ + @GetMapping("/getPdaRouters") + public R> getPdaRouters() { + List menus = menuService.selectMenuTreeByUserId(LoginHelper.getUserId(),1995); + return R.ok(menus); + } /** * 获取菜单列表 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java index f773cc0..4f6de00 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java @@ -298,4 +298,10 @@ public class SysUserController extends BaseController { return R.ok(userService.selectUserListByDept(deptId)); } + @PostMapping("/getUList") + public R> getUList(SysUserBo user) { + List list = userService.selectUserExportList(user); + return R.ok(list); + } + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysCodeRule.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysCodeRule.java new file mode 100644 index 0000000..8173162 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysCodeRule.java @@ -0,0 +1,80 @@ +package org.dromara.system.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 编码规则对象 sys_code_rule + * + * @author Yinq + * @date 2025-02-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_code_rule") +public class SysCodeRule extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 编码规则ID + */ + @TableId(value = "code_rule_id", type = IdType.AUTO) + private Long codeRuleId; + + /** + * 编码规则编码 + */ + private String codeRuleCode; + + /** + * 编码规则字段 + */ + private String codeRuleName; + + /** + * 规则前缀 + */ + private String rulePrefix; + + /** + * 序列号初始长度 + */ + private Long sequenceLength; + + /** + * 规则模板 + */ + private String ruleTemplate; + + /** + * 更新标识(1不更新 2每日更新) + */ + private String renewFlag; + + /** + * 当前编码 + */ + private String currentCode; + + /** + * 下个编码 + */ + private String nextCode; + + /** + * 激活标识(1是 0否) + */ + private String activeFlag; + + /** + * 备注 + */ + private String remark; + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMasterData.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMasterData.java new file mode 100644 index 0000000..c03a44c --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMasterData.java @@ -0,0 +1,131 @@ +package org.dromara.system.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 主数据维护对象 sys_master_data + * + * @author Yinq + * @date 2025-01-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_master_data") +public class SysMasterData extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @TableId(value = "master_data_id", type = IdType.AUTO) + private Long masterDataId; + + /** + * 所属模块(1MES 2WMS 3DMS 4QMS 5EMS) + */ + @TableField("module_type") + private String moduleType; + + /** + * 父级标识;(1是 0否) + */ + @TableField("parent_flag") + private String parentFlag; + + /** + * 菜单ID + */ + @TableField("menu_id") + private Long menuId; + + /** + * 路由参数 + */ + @TableField("query_param") + private String queryParam; + + /** + * 主数据标题;例:品牌、层级、花纹 + */ + @TableField("master_data_title") + private String masterDataTitle; + + /** + * 预留字段1名称 + */ + @TableField("field_name_1") + private String fieldName1; + + /** + * 预留字段1显示标识;(1是 0否) + */ + @TableField("display_flag_1") + private String displayFlag1; + + /** + * 预留字段2名称 + */ + @TableField("field_name_2") + private String fieldName2; + + /** + * 预留字段2显示标识;(1是 0否) + */ + @TableField("display_flag_2") + private String displayFlag2; + + /** + * 预留字段3名称 + */ + @TableField("field_name_3") + private String fieldName3; + + /** + * 预留字段3显示标识;(1是 0否) + */ + @TableField("display_flag_3") + private String displayFlag3; + + /** + * 预留字段4名称 + */ + @TableField("field_name_4") + private String fieldName4; + + /** + * 预留字段4显示标识;(1是 0否) + */ + @TableField("display_flag_4") + private String displayFlag4; + + /** + * 预留字段5名称 + */ + @TableField("field_name_5") + private String fieldName5; + + /** + * 预留字段5显示标识;(1是 0否) + */ + @TableField("display_flag_5") + private String displayFlag5; + + /** + * 激活标识(1是 0否) + */ + @TableField("active_flag") + private String activeFlag; + + /** + * 备注 + */ + @TableField("remark") + private String remark; +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMasterDataDetail.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMasterDataDetail.java new file mode 100644 index 0000000..2a64173 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysMasterDataDetail.java @@ -0,0 +1,110 @@ +package org.dromara.system.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 主数据维护明细对象 sys_master_data_detail + * + * @author Yinq + * @date 2025-01-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sys_master_data_detail") +public class SysMasterDataDetail extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @TableId(value = "master_data_detail_id", type = IdType.AUTO) + private Long masterDataDetailId; + + /** + * 主数据ID + */ + @TableField("master_data_id") + private Long masterDataId; + + /** + * 父级标识 + */ + @TableField("parent_id") + private Long parentId; + + /** + * 祖级列表 + */ + @TableField("ancestors") + private String ancestors; + + /** + * 主数据明细编号 + */ + @TableField("data_detail_code") + private String dataDetailCode; + + /** + * 主数据明细名称 + */ + @TableField("data_detail_name") + private String dataDetailName; + + /** + * 预留字段1数据 + */ + @TableField("field_data_1") + private String fieldData1; + + /** + * 预留字段2数据 + */ + @TableField("field_data_2") + private String fieldData2; + + /** + * 预留字段3数据 + */ + @TableField("field_data_3") + private String fieldData3; + + /** + * 预留字段4数据 + */ + @TableField("field_data_4") + private String fieldData4; + + /** + * 预留字段5数据 + */ + @TableField("field_data_5") + private String fieldData5; + + /** + * 显示排序 + */ + @TableField("display_sort") + private Long displaySort; + + /** + * 备注 + */ + @TableField("remark") + private String remark; + + /** + * 激活标识(1是 0否) + */ + @TableField("active_flag") + private String activeFlag; + + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysCodeRuleBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysCodeRuleBo.java new file mode 100644 index 0000000..ed07c92 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysCodeRuleBo.java @@ -0,0 +1,84 @@ +package org.dromara.system.domain.bo; + +import org.dromara.system.domain.SysCodeRule; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 编码规则业务对象 sys_code_rule + * + * @author Yinq + * @date 2025-02-11 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysCodeRule.class, reverseConvertGenerate = false) +public class SysCodeRuleBo extends BaseEntity { + + /** + * 编码规则ID + */ + private Long codeRuleId; + + /** + * 编码规则编码 + */ + @NotBlank(message = "编码规则编码不能为空", groups = {AddGroup.class, EditGroup.class}) + private String codeRuleCode; + + /** + * 编码规则字段 + */ + @NotBlank(message = "编码规则字段不能为空", groups = {AddGroup.class, EditGroup.class}) + private String codeRuleName; + + /** + * 规则前缀 + */ + @NotBlank(message = "规则前缀不能为空", groups = {AddGroup.class, EditGroup.class}) + private String rulePrefix; + + /** + * 序列号初始长度 + */ + private Long sequenceLength; + + /** + * 规则模板 + */ + private String ruleTemplate; + + /** + * 更新标识(1不更新 2每日更新) + */ + @NotBlank(message = "更新标识(1不更新 2每日更新)不能为空", groups = {AddGroup.class, EditGroup.class}) + private String renewFlag; + + /** + * 当前编码 + */ + private String currentCode; + + /** + * 下个编码 + */ + private String nextCode; + + /** + * 激活标识(1是 0否) + */ + @NotBlank(message = "激活标识(1是 0否)不能为空", groups = {AddGroup.class, EditGroup.class}) + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMasterDataBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMasterDataBo.java new file mode 100644 index 0000000..0dc5e4d --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMasterDataBo.java @@ -0,0 +1,124 @@ +package org.dromara.system.domain.bo; + +import org.dromara.system.domain.SysMasterData; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 主数据维护业务对象 sys_master_data + * + * @author Yinq + * @date 2025-01-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysMasterData.class, reverseConvertGenerate = false) +public class SysMasterDataBo extends BaseEntity { + + /** + * 主键标识 + */ + private Long masterDataId; + + /** + * 所属模块(1MES 2WMS 3DMS 4QMS 5EMS) + */ + @NotBlank(message = "所属模块(1MES 2WMS 3DMS 4QMS 5EMS)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String moduleType; + + /** + * 父级标识;(1是 0否) + */ + @NotBlank(message = "父级标识;(1是 0否)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String parentFlag; + + /** + * 菜单ID + */ + private Long menuId; + + /** + * 路由参数 + */ + @NotBlank(message = "路由参数不能为空", groups = { AddGroup.class, EditGroup.class }) + private String queryParam; + + /** + * 主数据标题;例:品牌、层级、花纹 + */ + @NotBlank(message = "主数据标题;例:品牌、层级、花纹不能为空", groups = { AddGroup.class, EditGroup.class }) + private String masterDataTitle; + + /** + * 预留字段1名称 + */ + private String fieldName1; + + /** + * 预留字段1显示标识;(1是 0否) + */ + @NotBlank(message = "预留字段1显示标识;(1是 0否)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String displayFlag1; + + /** + * 预留字段2名称 + */ + private String fieldName2; + + /** + * 预留字段2显示标识;(1是 0否) + */ + @NotBlank(message = "预留字段2显示标识;(1是 0否)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String displayFlag2; + + /** + * 预留字段3名称 + */ + private String fieldName3; + + /** + * 预留字段3显示标识;(1是 0否) + */ + @NotBlank(message = "预留字段3显示标识;(1是 0否)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String displayFlag3; + + /** + * 预留字段4名称 + */ + private String fieldName4; + + /** + * 预留字段4显示标识;(1是 0否) + */ + @NotBlank(message = "预留字段4显示标识;(1是 0否)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String displayFlag4; + + /** + * 预留字段5名称 + */ + private String fieldName5; + + /** + * 预留字段5显示标识;(1是 0否) + */ + @NotBlank(message = "预留字段5显示标识;(1是 0否)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String displayFlag5; + + /** + * 激活标识(1是 0否) + */ + @NotBlank(message = "激活标识(1是 0否)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String activeFlag; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMasterDataDetailBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMasterDataDetailBo.java new file mode 100644 index 0000000..797b535 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysMasterDataDetailBo.java @@ -0,0 +1,97 @@ +package org.dromara.system.domain.bo; + +import org.dromara.system.domain.SysMasterDataDetail; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 主数据维护明细业务对象 sys_master_data_detail + * + * @author Yinq + * @date 2025-01-10 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SysMasterDataDetail.class, reverseConvertGenerate = false) +public class SysMasterDataDetailBo extends BaseEntity { + + /** + * 主键标识 + */ + private Long masterDataDetailId; + + /** + * 主数据ID + */ + private Long masterDataId; + + /** + * 父级标识 + */ + private Long parentId; + + /** + * 祖级列表 + */ + private String ancestors; + + /** + * 主数据明细编号 + */ + @NotBlank(message = "主数据明细编号不能为空", groups = {AddGroup.class, EditGroup.class}) + private String dataDetailCode; + + /** + * 主数据明细名称 + */ + @NotBlank(message = "主数据明细名称不能为空", groups = {AddGroup.class, EditGroup.class}) + private String dataDetailName; + + /** + * 预留字段1数据 + */ + private String fieldData1; + + /** + * 预留字段2数据 + */ + private String fieldData2; + + /** + * 预留字段3数据 + */ + private String fieldData3; + + /** + * 预留字段4数据 + */ + private String fieldData4; + + /** + * 预留字段5数据 + */ + private String fieldData5; + + /** + * 显示排序 + */ + private Long displaySort; + + /** + * 备注 + */ + private String remark; + + /** + * 激活标识(1是 0否) + */ + @NotBlank(message = "激活标识(1是 0否)不能为空", groups = {AddGroup.class, EditGroup.class}) + private String activeFlag; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysCodeRuleVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysCodeRuleVo.java new file mode 100644 index 0000000..aaf6c63 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysCodeRuleVo.java @@ -0,0 +1,100 @@ +package org.dromara.system.domain.vo; + +import org.dromara.system.domain.SysCodeRule; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 编码规则视图对象 sys_code_rule + * + * @author Yinq + * @date 2025-02-11 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysCodeRule.class) +public class SysCodeRuleVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 编码规则ID + */ + @ExcelProperty(value = "编码规则ID") + private Long codeRuleId; + + /** + * 编码规则编码 + */ + @ExcelProperty(value = "编码规则编码") + private String codeRuleCode; + + /** + * 编码规则字段 + */ + @ExcelProperty(value = "编码规则字段") + private String codeRuleName; + + /** + * 规则前缀 + */ + @ExcelProperty(value = "规则前缀") + private String rulePrefix; + + /** + * 序列号初始长度 + */ + @ExcelProperty(value = "序列号初始长度") + private Long sequenceLength; + + /** + * 规则模板 + */ + @ExcelProperty(value = "规则模板") + private String ruleTemplate; + + /** + * 更新标识(1不更新 2每日更新) + */ + @ExcelProperty(value = "更新标识(1不更新 2每日更新)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "renew_flag") + private String renewFlag; + + /** + * 当前编码 + */ + @ExcelProperty(value = "当前编码") + private String currentCode; + + /** + * 下个编码 + */ + @ExcelProperty(value = "下个编码") + private String nextCode; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识(1是 0否)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMasterDataDetailVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMasterDataDetailVo.java new file mode 100644 index 0000000..084328d --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMasterDataDetailVo.java @@ -0,0 +1,117 @@ +package org.dromara.system.domain.vo; + +import org.dromara.system.domain.SysMasterDataDetail; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 主数据维护明细视图对象 sys_master_data_detail + * + * @author Yinq + * @date 2025-01-10 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysMasterDataDetail.class) +public class SysMasterDataDetailVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @ExcelProperty(value = "主键标识") + private Long masterDataDetailId; + + /** + * 主数据ID + */ + @ExcelProperty(value = "主数据ID") + private Long masterDataId; + + /** + * 父级标识 + */ + @ExcelProperty(value = "父级标识") + private Long parentId; + + /** + * 祖级列表 + */ + @ExcelProperty(value = "祖级列表") + private String ancestors; + + /** + * 主数据明细编号 + */ + @ExcelProperty(value = "主数据明细编号") + private String dataDetailCode; + + /** + * 主数据明细名称 + */ + @ExcelProperty(value = "主数据明细名称") + private String dataDetailName; + + /** + * 预留字段1数据 + */ + @ExcelProperty(value = "预留字段1数据") + private String fieldData1; + + /** + * 预留字段2数据 + */ + @ExcelProperty(value = "预留字段2数据") + private String fieldData2; + + /** + * 预留字段3数据 + */ + @ExcelProperty(value = "预留字段3数据") + private String fieldData3; + + /** + * 预留字段4数据 + */ + @ExcelProperty(value = "预留字段4数据") + private String fieldData4; + + /** + * 预留字段5数据 + */ + @ExcelProperty(value = "预留字段5数据") + private String fieldData5; + + /** + * 显示排序 + */ + @ExcelProperty(value = "显示排序") + private Long displaySort; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识(1是 0否)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMasterDataVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMasterDataVo.java new file mode 100644 index 0000000..94dd8c1 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysMasterDataVo.java @@ -0,0 +1,148 @@ +package org.dromara.system.domain.vo; + +import org.dromara.system.domain.SysMasterData; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 主数据维护视图对象 sys_master_data + * + * @author Yinq + * @date 2025-01-10 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SysMasterData.class) +public class SysMasterDataVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键标识 + */ + @ExcelProperty(value = "主键标识") + private Long masterDataId; + + /** + * 所属模块(1MES 2WMS 3DMS 4QMS 5EMS) + */ + @ExcelProperty(value = "所属模块", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_module_type") + private String moduleType; + + /** + * 父级标识;(1是 0否) + */ + @ExcelProperty(value = "父级标识", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String parentFlag; + + /** + * 菜单ID + */ + @ExcelProperty(value = "菜单ID") + private Long menuId; + + /** + * 路由参数 + */ + @ExcelProperty(value = "路由参数") + private String queryParam; + + /** + * 主数据标题;例:品牌、层级、花纹 + */ + @ExcelProperty(value = "主数据标题;例:品牌、层级、花纹") + private String masterDataTitle; + + /** + * 预留字段1名称 + */ + @ExcelProperty(value = "预留字段1名称") + private String fieldName1; + + /** + * 预留字段1显示标识;(1是 0否) + */ + @ExcelProperty(value = "预留字段1显示标识;", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String displayFlag1; + + /** + * 预留字段2名称 + */ + @ExcelProperty(value = "预留字段2名称") + private String fieldName2; + + /** + * 预留字段2显示标识;(1是 0否) + */ + @ExcelProperty(value = "预留字段2显示标识;", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String displayFlag2; + + /** + * 预留字段3名称 + */ + @ExcelProperty(value = "预留字段3名称") + private String fieldName3; + + /** + * 预留字段3显示标识;(1是 0否) + */ + @ExcelProperty(value = "预留字段3显示标识;", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String displayFlag3; + + /** + * 预留字段4名称 + */ + @ExcelProperty(value = "预留字段4名称") + private String fieldName4; + + /** + * 预留字段4显示标识;(1是 0否) + */ + @ExcelProperty(value = "预留字段4显示标识;", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String displayFlag4; + + /** + * 预留字段5名称 + */ + @ExcelProperty(value = "预留字段5名称") + private String fieldName5; + + /** + * 预留字段5显示标识;(1是 0否) + */ + @ExcelProperty(value = "预留字段5显示标识;", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String displayFlag5; + + /** + * 激活标识(1是 0否) + */ + @ExcelProperty(value = "激活标识(1是 0否)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "active_flag") + private String activeFlag; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteCodeRuleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteCodeRuleServiceImpl.java new file mode 100644 index 0000000..35eb56b --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteCodeRuleServiceImpl.java @@ -0,0 +1,33 @@ +package org.dromara.system.dubbo; + +import lombok.RequiredArgsConstructor; +import org.apache.dubbo.config.annotation.DubboService; +import org.dromara.system.api.RemoteCodeRuleService; +import org.dromara.system.domain.bo.SysCodeRuleBo; +import org.dromara.system.service.ISysCodeRuleService; +import org.springframework.stereotype.Service; + +/** + * 编码规则服务 + * + * @author Yinq + */ +@RequiredArgsConstructor +@Service +@DubboService +public class RemoteCodeRuleServiceImpl implements RemoteCodeRuleService { + + private final ISysCodeRuleService sysCodeRuleService; + + /** + * 通过编码规则编码获取编码 + * @param codeRuleCode 编码规则编码 + * @return currentCode + */ + @Override + public String selectCodeRuleCode(String codeRuleCode) { + SysCodeRuleBo bo = new SysCodeRuleBo(); + bo.setCodeRuleCode(codeRuleCode); + return sysCodeRuleService.getRuleGenerateCode(bo); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysCodeRuleMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysCodeRuleMapper.java new file mode 100644 index 0000000..4bd84b4 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysCodeRuleMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.mapper; + +import org.dromara.system.domain.SysCodeRule; +import org.dromara.system.domain.vo.SysCodeRuleVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 编码规则Mapper接口 + * + * @author Yinq + * @date 2025-02-11 + */ +public interface SysCodeRuleMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMasterDataDetailMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMasterDataDetailMapper.java new file mode 100644 index 0000000..f506fa5 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMasterDataDetailMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.mapper; + +import org.dromara.system.domain.SysMasterDataDetail; +import org.dromara.system.domain.vo.SysMasterDataDetailVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 主数据维护明细Mapper接口 + * + * @author Yinq + * @date 2025-01-10 + */ +public interface SysMasterDataDetailMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMasterDataMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMasterDataMapper.java new file mode 100644 index 0000000..48033dc --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMasterDataMapper.java @@ -0,0 +1,15 @@ +package org.dromara.system.mapper; + +import org.dromara.system.domain.SysMasterData; +import org.dromara.system.domain.vo.SysMasterDataVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 主数据维护Mapper接口 + * + * @author Yinq + * @date 2025-01-10 + */ +public interface SysMasterDataMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysCodeRuleService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysCodeRuleService.java new file mode 100644 index 0000000..d5c6b57 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysCodeRuleService.java @@ -0,0 +1,77 @@ +package org.dromara.system.service; + +import org.dromara.system.domain.SysCodeRule; +import org.dromara.system.domain.vo.SysCodeRuleVo; +import org.dromara.system.domain.bo.SysCodeRuleBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 编码规则Service接口 + * + * @author Yinq + * @date 2025-02-11 + */ +public interface ISysCodeRuleService { + + /** + * 查询编码规则 + * + * @param codeRuleId 主键 + * @return 编码规则 + */ + SysCodeRuleVo queryById(Long codeRuleId); + + /** + * 分页查询编码规则列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 编码规则分页列表 + */ + TableDataInfo queryPageList(SysCodeRuleBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的编码规则列表 + * + * @param bo 查询条件 + * @return 编码规则列表 + */ + List queryList(SysCodeRuleBo bo); + + /** + * 新增编码规则 + * + * @param bo 编码规则 + * @return 是否新增成功 + */ + Boolean insertByBo(SysCodeRuleBo bo); + + /** + * 修改编码规则 + * + * @param bo 编码规则 + * @return 是否修改成功 + */ + Boolean updateByBo(SysCodeRuleBo bo); + + /** + * 校验并批量删除编码规则信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 获取生成的编码规则 + * @param bo 编码规则编码 + * @return + */ + String getRuleGenerateCode(SysCodeRuleBo bo); + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMasterDataDetailService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMasterDataDetailService.java new file mode 100644 index 0000000..2908f91 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMasterDataDetailService.java @@ -0,0 +1,69 @@ +package org.dromara.system.service; + +import org.dromara.system.domain.SysMasterDataDetail; +import org.dromara.system.domain.vo.SysMasterDataDetailVo; +import org.dromara.system.domain.bo.SysMasterDataDetailBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 主数据维护明细Service接口 + * + * @author Yinq + * @date 2025-01-10 + */ +public interface ISysMasterDataDetailService { + + /** + * 查询主数据维护明细 + * + * @param masterDataDetailId 主键 + * @return 主数据维护明细 + */ + SysMasterDataDetailVo queryById(Long masterDataDetailId); + + /** + * 分页查询主数据维护明细列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 主数据维护明细分页列表 + */ + TableDataInfo queryPageList(SysMasterDataDetailBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的主数据维护明细列表 + * + * @param bo 查询条件 + * @return 主数据维护明细列表 + */ + List queryList(SysMasterDataDetailBo bo); + + /** + * 新增主数据维护明细 + * + * @param bo 主数据维护明细 + * @return 是否新增成功 + */ + Boolean insertByBo(SysMasterDataDetailBo bo); + + /** + * 修改主数据维护明细 + * + * @param bo 主数据维护明细 + * @return 是否修改成功 + */ + Boolean updateByBo(SysMasterDataDetailBo bo); + + /** + * 校验并批量删除主数据维护明细信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMasterDataService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMasterDataService.java new file mode 100644 index 0000000..eb0b1b2 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMasterDataService.java @@ -0,0 +1,69 @@ +package org.dromara.system.service; + +import org.dromara.system.domain.SysMasterData; +import org.dromara.system.domain.vo.SysMasterDataVo; +import org.dromara.system.domain.bo.SysMasterDataBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 主数据维护Service接口 + * + * @author Yinq + * @date 2025-01-10 + */ +public interface ISysMasterDataService { + + /** + * 查询主数据维护 + * + * @param masterDataId 主键 + * @return 主数据维护 + */ + SysMasterDataVo queryById(Long masterDataId); + + /** + * 分页查询主数据维护列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 主数据维护分页列表 + */ + TableDataInfo queryPageList(SysMasterDataBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的主数据维护列表 + * + * @param bo 查询条件 + * @return 主数据维护列表 + */ + List queryList(SysMasterDataBo bo); + + /** + * 新增主数据维护 + * + * @param bo 主数据维护 + * @return 是否新增成功 + */ + Boolean insertByBo(SysMasterDataBo bo); + + /** + * 修改主数据维护 + * + * @param bo 主数据维护 + * @return 是否修改成功 + */ + Boolean updateByBo(SysMasterDataBo bo); + + /** + * 校验并批量删除主数据维护信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMenuService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMenuService.java index 72d705e..a1bdbb5 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMenuService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysMenuService.java @@ -56,6 +56,7 @@ public interface ISysMenuService { * @return 菜单列表 */ List selectMenuTreeByUserId(Long userId); + List selectMenuTreeByUserId(Long userId,int pId); /** * 根据角色ID查询菜单树信息 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysCodeRuleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysCodeRuleServiceImpl.java new file mode 100644 index 0000000..eb41a21 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysCodeRuleServiceImpl.java @@ -0,0 +1,205 @@ +package org.dromara.system.service.impl; + +import org.dromara.common.core.constant.SysConstants; +import org.dromara.common.core.utils.DateUtils; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.system.domain.bo.SysCodeRuleBo; +import org.dromara.system.domain.vo.SysCodeRuleVo; +import org.dromara.system.domain.SysCodeRule; +import org.dromara.system.mapper.SysCodeRuleMapper; +import org.dromara.system.service.ISysCodeRuleService; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 编码规则Service业务层处理 + * + * @author Yinq + * @date 2025-02-11 + */ +@RequiredArgsConstructor +@Service +public class SysCodeRuleServiceImpl implements ISysCodeRuleService { + + private final SysCodeRuleMapper baseMapper; + + /** + * 查询编码规则 + * + * @param codeRuleId 主键 + * @return 编码规则 + */ + @Override + public SysCodeRuleVo queryById(Long codeRuleId) { + return baseMapper.selectVoById(codeRuleId); + } + + /** + * 分页查询编码规则列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 编码规则分页列表 + */ + @Override + public TableDataInfo queryPageList(SysCodeRuleBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的编码规则列表 + * + * @param bo 查询条件 + * @return 编码规则列表 + */ + @Override + public List queryList(SysCodeRuleBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(SysCodeRuleBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(SysCodeRule.class) + .selectAll(SysCodeRule.class) + .eq(bo.getCodeRuleId() != null, SysCodeRule::getCodeRuleId, bo.getCodeRuleId()) + .eq(StringUtils.isNotBlank(bo.getCodeRuleCode()), SysCodeRule::getCodeRuleCode, bo.getCodeRuleCode()) + .like(StringUtils.isNotBlank(bo.getCodeRuleName()), SysCodeRule::getCodeRuleName, bo.getCodeRuleName()) + .eq(StringUtils.isNotBlank(bo.getRulePrefix()), SysCodeRule::getRulePrefix, bo.getRulePrefix()) + .eq(StringUtils.isNotBlank(bo.getRuleTemplate()), SysCodeRule::getRuleTemplate, bo.getRuleTemplate()) + .eq(StringUtils.isNotBlank(bo.getRenewFlag()), SysCodeRule::getRenewFlag, bo.getRenewFlag()) + .eq(StringUtils.isNotBlank(bo.getCurrentCode()), SysCodeRule::getCurrentCode, bo.getCurrentCode()) + .eq(StringUtils.isNotBlank(bo.getNextCode()), SysCodeRule::getNextCode, bo.getNextCode()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), SysCodeRule::getActiveFlag, bo.getActiveFlag()) + .orderByAsc(SysCodeRule::getCreateTime); + return lqw; + } + + /** + * 新增编码规则 + * + * @param bo 编码规则 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(SysCodeRuleBo bo) { + SysCodeRule add = MapstructUtils.convert(bo, SysCodeRule.class); + validEntityBeforeSave(add); + generateCode(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setCodeRuleId(add.getCodeRuleId()); + } + return flag; + } + + /** + * 修改编码规则 + * + * @param bo 编码规则 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(SysCodeRuleBo bo) { + SysCodeRule update = MapstructUtils.convert(bo, SysCodeRule.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SysCodeRule entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除编码规则信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } + + /** + * 获取生成的编码规则 + * @param bo 编码规则编码 + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public String getRuleGenerateCode(SysCodeRuleBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + SysCodeRule sysCodeRule = baseMapper.selectOne(lqw); + SysCodeRule codeRule = generateCode(sysCodeRule); + baseMapper.updateById(codeRule); + return codeRule.getCurrentCode(); + } + + public SysCodeRule generateCode(SysCodeRule sysCodeRule) { + if (StringUtils.isNull(sysCodeRule)) { + return null; + } + Long sequenceLength = sysCodeRule.getSequenceLength(); + String ruleTemplate = sysCodeRule.getRuleTemplate(); + String rulePrefix = sysCodeRule.getRulePrefix(); + String nextCode = sysCodeRule.getNextCode(); + StringBuilder code = new StringBuilder(); + code.append(rulePrefix); + String dateToStr = null; + if (sysCodeRule.getRenewFlag().equals(SysConstants.SYS_RENEW_FLAG_DAY)) { + //每日更新 + dateToStr = DateUtils.parseDateToStr(ruleTemplate, new Date()); + code.append(dateToStr); + // 如果 nextCode 不包含 dateToStr,说明是新的日期 + if (nextCode == null || !nextCode.contains(dateToStr)) { + String cCode = code + formatSequence(sequenceLength, 1L); + String nCode = code + formatSequence(sequenceLength, 2L); + sysCodeRule.setCurrentCode(cCode); + sysCodeRule.setNextCode(nCode); + return sysCodeRule; + } + } + long seq = 1L; + if ((StringUtils.isNotEmpty(nextCode) && StringUtils.isNotEmpty(dateToStr) && nextCode.contains(dateToStr)) + || sysCodeRule.getRenewFlag().equals(SysConstants.SYS_RENEW_FLAG_NO)) { + String substring = nextCode.substring(nextCode.length() - sequenceLength.intValue()); + seq = Long.parseLong(substring) + 1; + } + //序列号 + code.append(formatSequence(sequenceLength, seq)); + sysCodeRule.setCurrentCode(sysCodeRule.getNextCode()); + sysCodeRule.setNextCode(code.toString()); + return sysCodeRule; + } + + public static String formatSequence(Long sequenceLength, Long seq) { + String seqStr = String.valueOf(seq); + if (seqStr.length() >= sequenceLength) { + return seqStr; + } + return String.format("%0" + sequenceLength + "d", seq); + } + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataDetailServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataDetailServiceImpl.java new file mode 100644 index 0000000..e8861cc --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataDetailServiceImpl.java @@ -0,0 +1,154 @@ +package org.dromara.system.service.impl; + +import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.system.domain.bo.SysMasterDataDetailBo; +import org.dromara.system.domain.vo.SysMasterDataDetailVo; +import org.dromara.system.domain.SysMasterDataDetail; +import org.dromara.system.mapper.SysMasterDataDetailMapper; +import org.dromara.system.service.ISysMasterDataDetailService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 主数据维护明细Service业务层处理 + * + * @author Yinq + * @date 2025-01-10 + */ +@RequiredArgsConstructor +@Service +public class SysMasterDataDetailServiceImpl implements ISysMasterDataDetailService { + + private final SysMasterDataDetailMapper baseMapper; + + /** + * 查询主数据维护明细 + * + * @param masterDataDetailId 主键 + * @return 主数据维护明细 + */ + @Override + public SysMasterDataDetailVo queryById(Long masterDataDetailId){ + return baseMapper.selectVoById(masterDataDetailId); + } + + /** + * 分页查询主数据维护明细列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 主数据维护明细分页列表 + */ + @Override + public TableDataInfo queryPageList(SysMasterDataDetailBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的主数据维护明细列表 + * + * @param bo 查询条件 + * @return 主数据维护明细列表 + */ + @Override + public List queryList(SysMasterDataDetailBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(SysMasterDataDetailBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(SysMasterDataDetail.class) + .selectAll(SysMasterDataDetail.class) + .eq(bo.getMasterDataDetailId() != null, SysMasterDataDetail::getMasterDataDetailId, bo.getMasterDataDetailId()) + .eq(bo.getMasterDataId() != null, SysMasterDataDetail::getMasterDataId, bo.getMasterDataId()) + .eq(bo.getParentId() != null, SysMasterDataDetail::getParentId, bo.getParentId()) + .eq(StringUtils.isNotBlank(bo.getAncestors()), SysMasterDataDetail::getAncestors, bo.getAncestors()) + .eq(StringUtils.isNotBlank(bo.getDataDetailCode()), SysMasterDataDetail::getDataDetailCode, bo.getDataDetailCode()) + .like(StringUtils.isNotBlank(bo.getDataDetailName()), SysMasterDataDetail::getDataDetailName, bo.getDataDetailName()) + .eq(StringUtils.isNotBlank(bo.getFieldData1()), SysMasterDataDetail::getFieldData1, bo.getFieldData1()) + .eq(StringUtils.isNotBlank(bo.getFieldData2()), SysMasterDataDetail::getFieldData2, bo.getFieldData2()) + .eq(StringUtils.isNotBlank(bo.getFieldData3()), SysMasterDataDetail::getFieldData3, bo.getFieldData3()) + .eq(StringUtils.isNotBlank(bo.getFieldData4()), SysMasterDataDetail::getFieldData4, bo.getFieldData4()) + .eq(StringUtils.isNotBlank(bo.getFieldData5()), SysMasterDataDetail::getFieldData5, bo.getFieldData5()) + .eq(bo.getDisplaySort() != null, SysMasterDataDetail::getDisplaySort, bo.getDisplaySort()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), SysMasterDataDetail::getActiveFlag, bo.getActiveFlag()) + .orderByAsc(SysMasterDataDetail::getDataDetailCode); + return lqw; + } + + /** + * 新增主数据维护明细 + * + * @param bo 主数据维护明细 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(SysMasterDataDetailBo bo) { + SysMasterDataDetail add = MapstructUtils.convert(bo, SysMasterDataDetail.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setMasterDataDetailId(add.getMasterDataDetailId()); + } + return flag; + } + + /** + * 修改主数据维护明细 + * + * @param bo 主数据维护明细 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(SysMasterDataDetailBo bo) { + SysMasterDataDetail update = MapstructUtils.convert(bo, SysMasterDataDetail.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SysMasterDataDetail entity){ + //TODO 做一些数据校验,如唯一约束 + //编号校验 + SysMasterDataDetailBo detailBo = new SysMasterDataDetailBo(); + detailBo.setMasterDataId(entity.getMasterDataId()); + detailBo.setDataDetailCode(entity.getDataDetailCode()); + MPJLambdaWrapper lqw = buildQueryWrapper(detailBo); + SysMasterDataDetail detail = baseMapper.selectOne(lqw); + if (StringUtils.isNotNull(detail) && !entity.getMasterDataDetailId().equals(detail.getMasterDataDetailId())){ + throw new ServiceException("编码已存在"); + } + } + + /** + * 校验并批量删除主数据维护明细信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataServiceImpl.java new file mode 100644 index 0000000..12b9016 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMasterDataServiceImpl.java @@ -0,0 +1,148 @@ +package org.dromara.system.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.dromara.system.domain.bo.SysMasterDataBo; +import org.dromara.system.domain.vo.SysMasterDataVo; +import org.dromara.system.domain.SysMasterData; +import org.dromara.system.mapper.SysMasterDataMapper; +import org.dromara.system.service.ISysMasterDataService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 主数据维护Service业务层处理 + * + * @author Yinq + * @date 2025-01-10 + */ +@RequiredArgsConstructor +@Service +public class SysMasterDataServiceImpl implements ISysMasterDataService { + + private final SysMasterDataMapper baseMapper; + + /** + * 查询主数据维护 + * + * @param masterDataId 主键 + * @return 主数据维护 + */ + @Override + public SysMasterDataVo queryById(Long masterDataId){ + return baseMapper.selectVoById(masterDataId); + } + + /** + * 分页查询主数据维护列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 主数据维护分页列表 + */ + @Override + public TableDataInfo queryPageList(SysMasterDataBo bo, PageQuery pageQuery) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的主数据维护列表 + * + * @param bo 查询条件 + * @return 主数据维护列表 + */ + @Override + public List queryList(SysMasterDataBo bo) { + MPJLambdaWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private MPJLambdaWrapper buildQueryWrapper(SysMasterDataBo bo) { + Map params = bo.getParams(); + MPJLambdaWrapper lqw = JoinWrappers.lambda(SysMasterData.class) + .selectAll(SysMasterData.class) + .eq(bo.getMasterDataId() != null, SysMasterData::getMasterDataId, bo.getMasterDataId()) + .eq(StringUtils.isNotBlank(bo.getModuleType()), SysMasterData::getModuleType, bo.getModuleType()) + .eq(StringUtils.isNotBlank(bo.getParentFlag()), SysMasterData::getParentFlag, bo.getParentFlag()) + .eq(bo.getMenuId() != null, SysMasterData::getMenuId, bo.getMenuId()) + .like(StringUtils.isNotBlank(bo.getQueryParam()), SysMasterData::getQueryParam, bo.getQueryParam()) + .eq(StringUtils.isNotBlank(bo.getMasterDataTitle()), SysMasterData::getMasterDataTitle, bo.getMasterDataTitle()) + .eq(StringUtils.isNotBlank(bo.getFieldName1()), SysMasterData::getFieldName1, bo.getFieldName1()) + .eq(StringUtils.isNotBlank(bo.getDisplayFlag1()), SysMasterData::getDisplayFlag1, bo.getDisplayFlag1()) + .eq(StringUtils.isNotBlank(bo.getFieldName2()), SysMasterData::getFieldName2, bo.getFieldName2()) + .eq(StringUtils.isNotBlank(bo.getDisplayFlag2()), SysMasterData::getDisplayFlag2, bo.getDisplayFlag2()) + .eq(StringUtils.isNotBlank(bo.getFieldName3()), SysMasterData::getFieldName3, bo.getFieldName3()) + .eq(StringUtils.isNotBlank(bo.getDisplayFlag3()), SysMasterData::getDisplayFlag3, bo.getDisplayFlag3()) + .eq(StringUtils.isNotBlank(bo.getFieldName4()), SysMasterData::getFieldName4, bo.getFieldName4()) + .eq(StringUtils.isNotBlank(bo.getDisplayFlag4()), SysMasterData::getDisplayFlag4, bo.getDisplayFlag4()) + .eq(StringUtils.isNotBlank(bo.getFieldName5()), SysMasterData::getFieldName5, bo.getFieldName5()) + .eq(StringUtils.isNotBlank(bo.getDisplayFlag5()), SysMasterData::getDisplayFlag5, bo.getDisplayFlag5()) + .eq(StringUtils.isNotBlank(bo.getActiveFlag()), SysMasterData::getActiveFlag, bo.getActiveFlag()) + .orderByAsc(SysMasterData::getCreateTime); + return lqw; + } + + /** + * 新增主数据维护 + * + * @param bo 主数据维护 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(SysMasterDataBo bo) { + SysMasterData add = MapstructUtils.convert(bo, SysMasterData.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setMasterDataId(add.getMasterDataId()); + } + return flag; + } + + /** + * 修改主数据维护 + * + * @param bo 主数据维护 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(SysMasterDataBo bo) { + SysMasterData update = MapstructUtils.convert(bo, SysMasterData.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SysMasterData entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除主数据维护信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java index 1b6a9aa..897d94a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java @@ -139,6 +139,16 @@ public class SysMenuServiceImpl implements ISysMenuService { } return getChildPerms(menus, 0); } + @Override + public List selectMenuTreeByUserId(Long userId,int pId) { + List menus; + if (LoginHelper.isSuperAdmin(userId)) { + menus = baseMapper.selectMenuTreeAll(); + } else { + menus = baseMapper.selectMenuTreeByUserId(userId); + } + return getChildPerms(menus, pId); + } /** * 根据角色ID查询菜单树信息 diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysCodeRuleMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysCodeRuleMapper.xml new file mode 100644 index 0000000..ea6f5a5 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysCodeRuleMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMasterDataDetailMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMasterDataDetailMapper.xml new file mode 100644 index 0000000..c5a736c --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMasterDataDetailMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMasterDataMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMasterDataMapper.xml new file mode 100644 index 0000000..9b2b1dc --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMasterDataMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-visual/ruoyi-snailjob-server/pom.xml b/ruoyi-visual/ruoyi-snailjob-server/pom.xml index 0cdaa54..36a9f57 100644 --- a/ruoyi-visual/ruoyi-snailjob-server/pom.xml +++ b/ruoyi-visual/ruoyi-snailjob-server/pom.xml @@ -40,6 +40,12 @@ spring-boot-admin-starter-client ${spring-boot-admin.version} + + + com.microsoft.sqlserver + mssql-jdbc + +