diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java index 9bfe759c..8322bfab 100644 --- a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java @@ -12,7 +12,7 @@ public interface ErrorCodeConstants { ErrorCode ITEMBASIC_NOT_EXISTS = new ErrorCode(1_000_020_000, "物品基本信息不存在"); ErrorCode ITEMBASIC_CODE_NOT_EXISTS = new ErrorCode(1_000_020_001, "物品基本信息不正确"); ErrorCode ITEMBASIC_CODE_EXISTS = new ErrorCode(1_000_020_002, "code已存在"); - ErrorCode ITEMBASIC_STATUS_NOT_EXISTS = new ErrorCode(1_000_020_003, "状态不存在{}"); + ErrorCode ITEMBASIC_STATUS_NOT_EXISTS = new ErrorCode(1_000_020_003, "状态不存在"); ErrorCode ITEMBASIC_UOM_NOT_EXISTS = new ErrorCode(1_000_020_004, "计量单位不存在"); ErrorCode ITEMBASIC_IS_STDPACK_NOT_EXISTS = new ErrorCode(1_000_020_005, "是否标包不存在"); ErrorCode ITEMBASIC_ENABLE_BUY_NOT_EXISTS = new ErrorCode(1_000_020_006, "可采购不存在"); @@ -665,7 +665,7 @@ public interface ErrorCodeConstants { ErrorCode DELIVER_REQUEST_NOT_EXISTS = new ErrorCode(1_000_119_000, "发货申请不存在"); ErrorCode DELIVER_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_119_001, "发货申请子不存在"); //发货任务ErrorCode - ErrorCode DELIVER_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_120_000, "发货任务主不存在"); + ErrorCode DELIVER_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_120_000, "发货任务主不存在{}"); ErrorCode DELIVER_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_120_001, "发货任务子不存在"); ErrorCode DELIVER_JOB_MAIN_STATUS_ERROR = new ErrorCode(1_000_120_003, "发货任务状态错误"); //发货记录ErrorCode @@ -816,5 +816,8 @@ public interface ErrorCodeConstants { ErrorCode QTY_EXCEPTION = new ErrorCode(1_000_403_000, "数量问题:【{}】"); ErrorCode ORDER_PURCHASE_EXCEPTION = new ErrorCode(1_000_404_000, "采购订单问题:【{}】"); + ErrorCode UOM_ERROR = new ErrorCode(1_000_300_000, "计量单位单位应是【{}】"); + + ErrorCode QTY_ERROR = new ErrorCode(1_000_301_000, "发货数量【{}】大于订单号【{}】、订单行【{}】、物品代码【{}】的未发货数量【{}】"); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainUpdateReqVO.java index e4a0a9d9..75750209 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainUpdateReqVO.java @@ -1,12 +1,18 @@ package com.win.module.wms.controller.deliverRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailCreateReqVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import java.util.List; + @Schema(description = "管理后台 - 发货申请主更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class DeliverRequestMainUpdateReqVO extends DeliverRequestMainBaseVO { - + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverRequest/DeliverRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverRequest/DeliverRequestMainConvert.java index 9a579269..2c4b4674 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverRequest/DeliverRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverRequest/DeliverRequestMainConvert.java @@ -4,11 +4,16 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainCreateReqVO; -import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainExcelVO; -import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainRespVO; -import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainUpdateReqVO; +import com.win.module.wms.controller.deliverRequest.vo.*; +import com.win.module.wms.controller.issueRequest.vo.IssueRequestImportErrorVO; +import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainBaseVO; +import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainCreateReqVO; +import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestDetailDO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO; @@ -33,5 +38,11 @@ public interface DeliverRequestMainConvert { PageResult convertPage(PageResult page); List convertList02(List list); + DeliverRequestMainDO convert(DeliverRequestMainBaseVO bean); + + @Mappings({ + @Mapping(source = "mainVo.number", target = "number"), + }) + DeliverRequestImportErrorVO convert(DeliverRequestMainCreateReqVO mainVo, DeliverRequestDetailDO detailDo); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java index 1a92e15b..f1146b97 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java @@ -26,6 +26,7 @@ public interface IssueRequestMainConvert { IssueRequestMainConvert INSTANCE = Mappers.getMapper(IssueRequestMainConvert.class); IssueRequestMainDO convert(IssueRequestMainCreateReqVO bean); + IssueRequestMainDO convert(IssueRequestMainBaseVO bean); IssueRequestMainDO convert(IssueRequestMainUpdateReqVO bean); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestDetailDO.java index c265b4b8..643fa231 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestDetailDO.java @@ -8,6 +8,8 @@ import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.*; import com.win.framework.mybatis.core.dataobject.BaseDO; +import javax.validation.constraints.NotBlank; + /** * 客户退货申请子 DO * @@ -30,6 +32,7 @@ public class CustomerreturnRequestDetailDO extends BaseDO { /** * 销售订单号 */ + @NotBlank private String soNumber; /** * 销售订单行 @@ -38,6 +41,7 @@ public class CustomerreturnRequestDetailDO extends BaseDO { /** * 包装号 */ + @NotBlank private String packingNumber; /** * 器具号 @@ -46,12 +50,14 @@ public class CustomerreturnRequestDetailDO extends BaseDO { /** * 批次 */ + @NotBlank private String batch; /** * 库存状态 * * 枚举 {@link TODO inventory_status 对应的类} */ + @NotBlank private String inventoryStatus; /** * 从货主代码 @@ -60,6 +66,7 @@ public class CustomerreturnRequestDetailDO extends BaseDO { /** * 从库位代码 */ + @NotBlank private String fromLocationCode; /** * 到库位代码 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestMainDO.java index 56834890..8fbdc55c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestMainDO.java @@ -9,6 +9,8 @@ import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.*; import com.win.framework.mybatis.core.dataobject.BaseDO; +import javax.validation.constraints.NotBlank; + /** * 客户退货申请主 DO * @@ -40,10 +42,12 @@ public class CustomerreturnRequestMainDO extends BaseDO { /** * 客户代码 */ + @NotBlank private String customerCode; /** * 客户月台代码 */ + @NotBlank private String customerDockCode; /** * 承运商 @@ -96,6 +100,7 @@ public class CustomerreturnRequestMainDO extends BaseDO { /** * 部门 */ + @NotBlank private String departmentCode; /** * 状态 @@ -114,30 +119,36 @@ public class CustomerreturnRequestMainDO extends BaseDO { /** * 从仓库代码 */ + @NotBlank private String fromWarehouseCode; /** * 从库位类型范围 * * 枚举 {@link TODO location_type 对应的类} */ + @NotBlank private String fromLocationTypes; /** * 从库区代码范围 */ + @NotBlank private String fromAreaCodes; /** * 到仓库代码 */ + @NotBlank private String toWarehouseCode; /** * 到库位类型范围 * * 枚举 {@link TODO location_type 对应的类} */ + @NotBlank private String toLocationTypes; /** * 到库区代码范围 */ + @NotBlank private String toAreaCodes; /** * 到月台代码 @@ -150,18 +161,22 @@ public class CustomerreturnRequestMainDO extends BaseDO { /** * 自动提交 */ + @NotBlank private String autoCommit; /** * 自动通过 */ + @NotBlank private String autoAgree; /** * 自动执行 */ + @NotBlank private String autoExecute; /** * 直接生成记录 */ + @NotBlank private String directCreateRecord; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customersettleRequest/CustomersettleRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customersettleRequest/CustomersettleRequestMainDO.java index f6f5cc05..04b20f4d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customersettleRequest/CustomersettleRequestMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customersettleRequest/CustomersettleRequestMainDO.java @@ -9,6 +9,8 @@ import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.*; import com.win.framework.mybatis.core.dataobject.BaseDO; +import javax.validation.constraints.NotBlank; + /** * 客户结算申请主 DO * @@ -39,20 +41,24 @@ public class CustomersettleRequestMainDO extends BaseDO { /** * 客户代码 */ + @NotBlank private String customerCode; /** * 从仓库代码 */ + @NotBlank private String fromWarehouseCode; /** * 从库位类型范围 * * 枚举 {@link TODO location_type 对应的类} */ + @NotBlank private String fromLocationTypes; /** * 从库区代码范围 */ + @NotBlank private String fromAreaCodes; /** * details @@ -65,6 +71,7 @@ public class CustomersettleRequestMainDO extends BaseDO { /** * 业务类型 */ + @NotBlank private String businessType; /** * 备注 @@ -89,12 +96,14 @@ public class CustomersettleRequestMainDO extends BaseDO { /** * 部门 */ + @NotBlank private String departmentCode; /** * 状态 * * 枚举 {@link TODO request_status 对应的类} */ + @NotBlank private String status; /** * 并发乐观锁 @@ -111,18 +120,22 @@ public class CustomersettleRequestMainDO extends BaseDO { /** * 自动提交 */ + @NotBlank private String autoCommit; /** * 自动通过 */ + @NotBlank private String autoAgree; /** * 自动执行 */ + @NotBlank private String autoExecute; /** * 直接生成记录 */ + @NotBlank private String directCreateRecord; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestDetailDO.java index 04eaf0a6..216a77dc 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestDetailDO.java @@ -8,6 +8,9 @@ import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.*; import com.win.framework.mybatis.core.dataobject.BaseDO; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + /** * 发货申请子 DO * @@ -30,6 +33,7 @@ public class DeliverRequestDetailDO extends BaseDO { /** * 销售订单号 */ + @NotBlank private String soNumber; /** * 销售订单行 @@ -38,6 +42,7 @@ public class DeliverRequestDetailDO extends BaseDO { /** * 包装号 */ + @NotBlank private String packingNumber; /** * 器具号 @@ -46,12 +51,14 @@ public class DeliverRequestDetailDO extends BaseDO { /** * 批次 */ + @NotBlank private String batch; /** * 库存状态 * * 枚举 {@link TODO inventory_status 对应的类} */ + @NotBlank private String inventoryStatus; /** * 到货主代码 @@ -60,6 +67,7 @@ public class DeliverRequestDetailDO extends BaseDO { /** * 到库位代码 */ + @NotBlank private String toLocationCode; /** * 主表ID diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestMainDO.java index 0898cabc..4c7427a2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestMainDO.java @@ -1,14 +1,12 @@ package com.win.module.wms.dal.dataobject.deliverRequest; import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.*; import com.win.framework.mybatis.core.dataobject.BaseDO; +import javax.validation.constraints.NotBlank; + /** * 发货申请主 DO * @@ -39,10 +37,12 @@ public class DeliverRequestMainDO extends BaseDO { /** * 客户代码 */ + @NotBlank private String customerCode; /** * 客户月台代码 */ + @NotBlank private String customerDockCode; /** * 承运商 @@ -63,20 +63,24 @@ public class DeliverRequestMainDO extends BaseDO { /** * 从仓库代码 */ + @NotBlank private String fromWarehouseCode; /** * 到仓库代码 */ + @NotBlank private String toWarehouseCode; /** * 从库位类型范围 * * 枚举 {@link TODO location_type 对应的类} */ + @NotBlank private String fromLocationTypes; /** * 从库区代码范围 */ + @NotBlank private String fromAreaCodes; /** * details @@ -113,12 +117,14 @@ public class DeliverRequestMainDO extends BaseDO { /** * 部门 */ + @NotBlank private String departmentCode; /** * 状态 * * 枚举 {@link TODO request_status 对应的类} */ + @NotBlank private String status; /** * 并发乐观锁 @@ -133,6 +139,7 @@ public class DeliverRequestMainDO extends BaseDO { * * 枚举 {@link TODO location_type 对应的类} */ + @NotBlank private String toLocationTypes; /** * 到库区范围 @@ -149,18 +156,22 @@ public class DeliverRequestMainDO extends BaseDO { /** * 自动提交 */ + @NotBlank private String autoCommit; /** * 自动通过 */ + @NotBlank private String autoAgree; /** * 自动执行 */ + @NotBlank private String autoExecute; /** * 直接生成记录 */ + @NotBlank private String directCreateRecord; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productputawayRequest/ProductputawayRequestDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productputawayRequest/ProductputawayRequestDetailDO.java index b0738b34..6670eb9e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productputawayRequest/ProductputawayRequestDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productputawayRequest/ProductputawayRequestDetailDO.java @@ -8,6 +8,8 @@ import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.*; import com.win.framework.mybatis.core.dataobject.BaseDO; +import javax.validation.constraints.NotBlank; + /** * 制品上架申请子 DO * @@ -30,6 +32,7 @@ public class ProductputawayRequestDetailDO extends BaseDO { /** * 包装号 */ + @NotBlank private String packingNumber; /** * 器具号 @@ -38,12 +41,14 @@ public class ProductputawayRequestDetailDO extends BaseDO { /** * 批次 */ + @NotBlank private String batch; /** * 库存状态 * * 枚举 {@link TODO inventory_status 对应的类} */ + @NotBlank private String inventoryStatus; /** * 订单号 @@ -56,6 +61,7 @@ public class ProductputawayRequestDetailDO extends BaseDO { /** * 从库位代码 */ + @NotBlank private String fromLocationCode; /** * 主表ID diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productputawayRequest/ProductputawayRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productputawayRequest/ProductputawayRequestMainDO.java index c6058880..f63dd4f3 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productputawayRequest/ProductputawayRequestMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productputawayRequest/ProductputawayRequestMainDO.java @@ -1,14 +1,12 @@ package com.win.module.wms.dal.dataobject.productputawayRequest; import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.*; import com.win.framework.mybatis.core.dataobject.BaseDO; +import javax.validation.constraints.NotBlank; + /** * 制品上架申请主 DO * @@ -35,22 +33,26 @@ public class ProductputawayRequestMainDO extends BaseDO { /** * 从仓库代码 */ + @NotBlank private String fromWarehouseCode; /** * 到仓库代码 */ + @NotBlank private String toWarehouseCode; /** * 从库位类型范围 * * 枚举 {@link TODO location_type 对应的类} */ + @NotBlank private String fromLocationTypes; /** * 到库位类型范围 * * 枚举 {@link TODO location_type 对应的类} */ + @NotBlank private String toLocationTypes; /** * 从库区代码范围 @@ -95,12 +97,14 @@ public class ProductputawayRequestMainDO extends BaseDO { /** * 部门 */ + @NotBlank private String departmentCode; /** * 状态 * * 枚举 {@link TODO request_status 对应的类} */ + @NotBlank private String status; /** * 并发乐观锁 @@ -117,18 +121,22 @@ public class ProductputawayRequestMainDO extends BaseDO { /** * 自动提交 */ + @NotBlank private String autoCommit; /** * 自动通过 */ + @NotBlank private String autoAgree; /** * 自动执行 */ + @NotBlank private String autoExecute; /** * 直接生成记录 */ + @NotBlank private String directCreateRecord; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestDetailDO.java index f85d5823..b12bc23a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestDetailDO.java @@ -8,6 +8,8 @@ import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.*; import com.win.framework.mybatis.core.dataobject.BaseDO; +import javax.validation.constraints.NotBlank; + /** * 制品报废申请子 DO * @@ -34,6 +36,7 @@ public class ProductscrapRequestDetailDO extends BaseDO { /** * 包装号 */ + @NotBlank private String packingNumber; /** * 器具号 @@ -42,16 +45,19 @@ public class ProductscrapRequestDetailDO extends BaseDO { /** * 批次 */ + @NotBlank private String batch; /** * 从库位代码 */ + @NotBlank private String fromLocationCode; /** * 库存状态 * * 枚举 {@link TODO inventory_status 对应的类} */ + @NotBlank private String inventoryStatus; /** * 原因 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestMainDO.java index 368ee2d6..62c8780a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestMainDO.java @@ -9,6 +9,8 @@ import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.*; import com.win.framework.mybatis.core.dataobject.BaseDO; +import javax.validation.constraints.NotBlank; + /** * 制品报废申请主 DO * @@ -31,6 +33,7 @@ public class ProductscrapRequestMainDO extends BaseDO { /** * 从仓库代码 */ + @NotBlank private String fromWarehouseCode; /** * details @@ -87,10 +90,12 @@ public class ProductscrapRequestMainDO extends BaseDO { * * 枚举 {@link TODO location_type 对应的类} */ + @NotBlank private String fromLocationTypes; /** * 从库区代码范围 */ + @NotBlank private String fromAreaCodes; /** * 工作流流水号 @@ -99,18 +104,22 @@ public class ProductscrapRequestMainDO extends BaseDO { /** * 自动提交 */ + @NotBlank private String autoCommit; /** * 自动通过 */ + @NotBlank private String autoAgree; /** * 自动执行 */ + @NotBlank private String autoExecute; /** * 直接生成记录 */ + @NotBlank private String directCreateRecord; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java index 3d5c8185..ed5e4320 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java @@ -2,27 +2,31 @@ package com.win.module.wms.service.deliverRequest; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.exceptions.UtilException; +import com.win.framework.common.exception.ErrorCode; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.util.validation.ValidationUtils; import com.win.framework.dict.core.util.DictFrameworkUtils; +import com.win.module.infra.api.trends.TrendsApi; +import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.system.api.dict.DictDataApi; import com.win.module.system.api.dict.dto.DictDataRespDTO; import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.deliverRequest.vo.*; -import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailCreateReqVO; -import com.win.module.wms.controller.issueRequest.vo.IssueRequestImportErrorVO; +import com.win.module.wms.controller.issueRequest.vo.*; import com.win.module.wms.convert.deliverRequest.DeliverRequestDetailConvert; import com.win.module.wms.convert.issueRequest.IssueRequestDetailConvert; import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestDetailDO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.sale.SaleDetailDO; import com.win.module.wms.dal.mysql.deliverRequest.DeliverRequestDetailMapper; import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.service.customer.*; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.requestsetting.RequestsettingService; @@ -68,6 +72,9 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService @Resource private Validator validator; + @Resource + private TrendsApi trendsApi; + @Resource private DictDataApi dictDataApi; @Resource @@ -79,23 +86,100 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService @Resource private DeliverJobMainService deliverJobMainService; + @Override public Long createDeliverRequestMain(DeliverRequestMainCreateReqVO createReqVO) { // 插入 - DeliverRequestMainDO deliverRequestMain = DeliverRequestMainConvert.INSTANCE.convert(createReqVO); - deliverRequestMainMapper.insert(deliverRequestMain); - // 返回 + RequestsettingDO requestsettingDO = new RequestsettingDO(); + DeliverRequestMainDO deliverRequestMain = validatorToCreate(createReqVO,requestsettingDO); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(deliverRequestMain.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "IssueRequest", "增加了发料申请", TrendsTypeEnum.CREATE); return deliverRequestMain.getId(); + } + private DeliverRequestMainDO validatorToCreate(DeliverRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + DeliverRequestMainDO deliverRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); + List subList = createReqVO.getSubList(); + List subDOList = DeliverRequestDetailConvert.INSTANCE.convertList03(subList); + for (DeliverRequestDetailDO deliverRequestDetailDO : subDOList) { + validateDetailMethod(deliverRequestDetailDO); + } + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); + deliverRequestMainDO.setNumber(number); + deliverRequestMainMapper.insert(deliverRequestMainDO); + for (DeliverRequestDetailDO deliverRequestDetailDO : subDOList) { + deliverRequestDetailDO.setMasterId(deliverRequestMainDO.getId()); + deliverRequestDetailDO.setNumber(deliverRequestMainDO.getNumber()); + } + deliverRequestDetailMapper.insertBatch(subDOList); + return deliverRequestMainDO; + } + + private DeliverRequestMainDO validateMainMethod(DeliverRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ + DeliverRequestMainDO deliverRequestMainDO = DeliverRequestMainConvert.INSTANCE.convert(baseVO); + deliverRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + deliverRequestMainDO.setRequestTime(LocalDateTime.now()); + requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverRequest"); + deliverRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); + deliverRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); + deliverRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + deliverRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRequest"); + deliverRequestMainDO.setBusinessType(businesstypeDO.getCode()); + deliverRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + deliverRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); + deliverRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + deliverRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + return deliverRequestMainDO; + + } + + private DeliverRequestDetailDO validateDetailMethod(DeliverRequestDetailDO deliverRequestDetailDO) { + ItembasicDO itembasicDO = validatoritemcode(deliverRequestDetailDO.getItemCode()); + deliverRequestDetailDO.setItemDesc1(itembasicDO.getDesc1()); + deliverRequestDetailDO.setItemDesc2(itembasicDO.getDesc2()); + deliverRequestDetailDO.setItemName(itembasicDO.getName()); + deliverRequestDetailDO.setProjectCode(itembasicDO.getProject()); + Isuom(itembasicDO.getUom(),deliverRequestDetailDO.getUom()); + SaleDetailDO saleDetailDO =validatorSale(deliverRequestDetailDO.getSoNumber(),deliverRequestDetailDO.getSoLine(),deliverRequestDetailDO.getItemCode()); + if(saleDetailDO!=null) { + Isqty(saleDetailDO.getShippedQty(), deliverRequestDetailDO.getQty(), saleDetailDO.getOrderQty(), deliverRequestDetailDO.getSoNumber(), deliverRequestDetailDO.getSoLine(), deliverRequestDetailDO.getItemCode()); + } + return deliverRequestDetailDO; + + } @Override public void updateDeliverRequestMain(DeliverRequestMainUpdateReqVO updateReqVO) { + RequestsettingDO requestsettingDO = new RequestsettingDO(); // 校验存在 validateDeliverRequestMainExists(updateReqVO.getId()); // 更新 + DeliverRequestMainDO deliverRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); DeliverRequestMainDO updateObj = DeliverRequestMainConvert.INSTANCE.convert(updateReqVO); deliverRequestMainMapper.updateById(updateObj); } + private DeliverRequestMainDO validatorToUpdate(DeliverRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + DeliverRequestMainDO deliverRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); + //子表校验 + List subList = updateReqVO.getSubList(); + List subDOList = DeliverRequestDetailConvert.INSTANCE.convertList03(subList); + for (DeliverRequestDetailDO issueRequestDetailDO : subDOList) { + validateDetailMethod(issueRequestDetailDO); + } + deliverRequestMainMapper.updateById(deliverRequestMainDO); + deliverRequestDetailMapper.updateBatch(subDOList); + return deliverRequestMainDO; + } + + + + @Override public void deleteDeliverRequestMain(Long id) { @@ -138,21 +222,113 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService public String Isuom(String uom1, String uom2) { DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(uom1); String value = dictDataRespDTO.getLabel(); - if(uom2.equals(value)){ + DictDataRespDTO dictDataRespDTO1 = dictDataApi.selectDictValue(uom2); + String value2 = dictDataRespDTO1.getLabel(); + if(value2.equals(value)){ return "ture"; }else { - throw new UtilException("计量单位"+uom2+"错误,应该是"+value); + throw exception(UOM_ERROR, value2); } } - public String Isqty(BigDecimal shippedqty, BigDecimal detailqty, BigDecimal orderqty,String sonumber,String soline,String itemcode) { + public String Isqty(BigDecimal shippedqty, BigDecimal detailqty, BigDecimal orderqty,String sonumber,String soline,String itemcode) { BigDecimal resultqty = orderqty.subtract(shippedqty); if( resultqty.compareTo(detailqty)>0 ) return "TURE"; else{ - throw new UtilException("发货数量"+detailqty+"大于订单号"+sonumber+"、订单行"+soline+"、物品代码"+itemcode+"的未发货数量"+ resultqty ); + throw exception(QTY_ERROR, detailqty,sonumber,soline,itemcode,resultqty); + } + } + private String validateDeliverRequestMainImport(DeliverRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + StringBuilder message = new StringBuilder(); + + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + mainDo.setRequestTime(LocalDateTime.now()); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverRequest"); + if (requestsettingDO == null) { + message.append("未查找到发料申请的相关申请设置"); + } else { + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); } + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRequest"); + if(businesstypeDO == null){ + message.append("根据单据设置未查找到发料申请的相关业务类型"); + }else { + mainDo.setBusinessType(businesstypeDO.getCode()); + mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes()); + mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes()); + } + try { + ValidationUtils.validate(validator, mainDo); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } + private void validatorcustomercode(String code){ + customerService.selectCustomerExist(code); + } + private ItembasicDO validatoritemcode(String code){ + ItembasicDO itembasicDO = itembasicService.selectItembasic(code); + return itembasicDO; + } + + private SaleDetailDO validatorSale(String SoNumber,String SoLine,String ItemCode ){ + SaleDetailDO saleDetailDO =deliverJobMainService.saleDetailExist(SoNumber,SoLine,ItemCode ); + return saleDetailDO; } + private String validateIssueRequestDetailImport(DeliverRequestDetailDO detailDo, DeliverRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + StringBuilder message = new StringBuilder(); + try{ + validatorcustomercode(mainDo.getCustomerCode()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + ItembasicDO itembasicDO = validatoritemcode(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasicDO.getDesc1()); + detailDo.setItemDesc2(itembasicDO.getDesc2()); + detailDo.setItemName(itembasicDO.getName()); + detailDo.setProjectCode(itembasicDO.getProject()); + try{ + Isuom(itembasicDO.getUom(),detailDo.getUom()); + }catch (Exception ex) { + + message.append(ex.getMessage()).append(","); + } + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try{ + SaleDetailDO saleDetailDO =validatorSale(detailDo.getSoNumber(),detailDo.getSoLine(),detailDo.getItemCode()); + + if(saleDetailDO!=null) { + try { + Isqty(saleDetailDO.getShippedQty(), detailDo.getQty(), saleDetailDO.getOrderQty(), detailDo.getSoNumber(), detailDo.getSoLine(), detailDo.getItemCode()); + } catch (Exception ex) { + + message.append(ex.getMessage()).append(","); + } + } + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + ValidationUtils.validate(validator, detailDo); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } + + + + @Override @Transactional public List importDeliverRequestList(List datas, Integer mode, boolean updatePart){ @@ -161,101 +337,39 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService } List errorList = new ArrayList<>(); datas.forEach(createReqVO -> { - String messageMain = ""; - BusinesstypeDO businesstypeDO = null; - try{ - customerService.selectCustomerExist(createReqVO.getCustomerCode()); - }catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - createReqVO.setRequestTime(LocalDateTime.now()); - try { - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverRequest"); - if (requestsettingDO != null) { - createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); - createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); - createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); - createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - } - } catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } - try { - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRequest"); - createReqVO.setBusinessType(businesstypeDO.getCode()); - createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); - createReqVO.setToLocationTypes(businesstypeDO.getInLocationTypes()); - createReqVO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); - createReqVO.setToAreaCodes(businesstypeDO.getInAreaCodes()); - } catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } - try { - ValidationUtils.validate(validator, createReqVO); - } catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RETURN_REQUEST.getCode()); - createReqVO.setNumber(number); + + BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + DeliverRequestMainDO mainDo = DeliverRequestMainConvert.INSTANCE.convert(createReqVO); + String messageMain = validateDeliverRequestMainImport(mainDo, businesstypeDO); List subList = createReqVO.getSubList(); List subDOList = DeliverRequestDetailConvert.INSTANCE.convertList03(subList); + // 是否有错误数据 + boolean flag = true; for (DeliverRequestDetailDO detailDO : subDOList) { - String messageDetail = ""; - try { - ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); - detailDO.setItemDesc1(itembasicDO.getDesc1()); - detailDO.setItemDesc2(itembasicDO.getDesc2()); - detailDO.setItemName(itembasicDO.getName()); - detailDO.setProjectCode(itembasicDO.getProject()); - try{ - Isuom(itembasicDO.getUom(),detailDO.getUom()); - }catch (Exception ex) { - - messageDetail += ex.getMessage() + ","; - } - }catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - try{ - SaleDetailDO saleDetailDO =deliverJobMainService.saleDetailExist(detailDO.getSoNumber(),detailDO.getSoLine(),detailDO.getItemCode()); - try{ - if(saleDetailDO!=null){ - Isqty(saleDetailDO.getShippedQty(),detailDO.getQty(),saleDetailDO.getOrderQty(),detailDO.getSoNumber(),detailDO.getSoLine(),detailDO.getItemCode()); - } - }catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - }catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - DeliverRequestDetailCreateReqVO purchaseturnRequestDetailCreateReqVO = DeliverRequestDetailConvert.INSTANCE.convert1(detailDO); - DeliverRequestImportErrorVO importVO = DeliverRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseturnRequestDetailCreateReqVO); - if (!messageMain.equals("") || !messageDetail.equals("")) { - importVO.setImportStatus("失败"); + String messageDetail = validateIssueRequestDetailImport(detailDO, mainDo, businesstypeDO); + if (!messageMain.isEmpty() || messageDetail.isEmpty()) { + DeliverRequestImportErrorVO importErrorVO = DeliverRequestMainConvert.INSTANCE.convert(createReqVO, detailDO); + importErrorVO.setImportStatus("失败"); messageMain = messageMain + messageDetail; - importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); - errorList.add(importVO); - } else { - detailDO.setNumber(createReqVO.getNumber()); - detailDO.setMasterId(createReqVO.getId()); + importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); + errorList.add(importErrorVO); + flag = false; } } - DeliverRequestMainDO createobj = DeliverRequestMainConvert.INSTANCE.convert(createReqVO); - if (errorList.isEmpty()) { - DeliverRequestMainDO existDeliverRequestMainDO = deliverRequestMainMapper.selectWorkShopCodeAndUseOnTheWayLocation(createReqVO.getCustomerCode()); - if (existDeliverRequestMainDO == null && mode != 3) { - deliverRequestMainMapper.insert(createobj); - deliverRequestDetailMapper.insertBatch(subDOList); - } else if (existDeliverRequestMainDO != null && mode != 2) { - deliverRequestMainMapper.updateById(createobj); - deliverRequestDetailMapper.updateBatch(subDOList); + //写入数据 + if (flag) { + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); + mainDo.setNumber(number); + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + deliverRequestMainMapper.insert(mainDo); + for (DeliverRequestDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDo.getId()); + detailDO.setNumber(number); } + deliverRequestDetailMapper.insertBatch(subDOList); } }); - if (!errorList.isEmpty() && !updatePart) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } return errorList; } + }