Browse Source

成品发货申请

master
廉洪喜 2 years ago
parent
commit
d83305a5f2
  1. 7
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainUpdateReqVO.java
  3. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverRequest/DeliverRequestMainConvert.java
  4. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java
  5. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestDetailDO.java
  6. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestMainDO.java
  7. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customersettleRequest/CustomersettleRequestMainDO.java
  8. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestDetailDO.java
  9. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestMainDO.java
  10. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productputawayRequest/ProductputawayRequestDetailDO.java
  11. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productputawayRequest/ProductputawayRequestMainDO.java
  12. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestDetailDO.java
  13. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestMainDO.java
  14. 304
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java

7
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_NOT_EXISTS = new ErrorCode(1_000_020_000, "物品基本信息不存在");
ErrorCode ITEMBASIC_CODE_NOT_EXISTS = new ErrorCode(1_000_020_001, "物品基本信息不正确"); ErrorCode ITEMBASIC_CODE_NOT_EXISTS = new ErrorCode(1_000_020_001, "物品基本信息不正确");
ErrorCode ITEMBASIC_CODE_EXISTS = new ErrorCode(1_000_020_002, "code已存在"); 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_UOM_NOT_EXISTS = new ErrorCode(1_000_020_004, "计量单位不存在");
ErrorCode ITEMBASIC_IS_STDPACK_NOT_EXISTS = new ErrorCode(1_000_020_005, "是否标包不存在"); ErrorCode ITEMBASIC_IS_STDPACK_NOT_EXISTS = new ErrorCode(1_000_020_005, "是否标包不存在");
ErrorCode ITEMBASIC_ENABLE_BUY_NOT_EXISTS = new ErrorCode(1_000_020_006, "可采购不存在"); 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_NOT_EXISTS = new ErrorCode(1_000_119_000, "发货申请不存在");
ErrorCode DELIVER_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_119_001, "发货申请子不存在"); ErrorCode DELIVER_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_119_001, "发货申请子不存在");
//发货任务ErrorCode //发货任务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_DETAIL_NOT_EXISTS = new ErrorCode(1_000_120_001, "发货任务子不存在");
ErrorCode DELIVER_JOB_MAIN_STATUS_ERROR = new ErrorCode(1_000_120_003, "发货任务状态错误"); ErrorCode DELIVER_JOB_MAIN_STATUS_ERROR = new ErrorCode(1_000_120_003, "发货任务状态错误");
//发货记录ErrorCode //发货记录ErrorCode
@ -816,5 +816,8 @@ public interface ErrorCodeConstants {
ErrorCode QTY_EXCEPTION = new ErrorCode(1_000_403_000, "数量问题:【{}】"); ErrorCode QTY_EXCEPTION = new ErrorCode(1_000_403_000, "数量问题:【{}】");
ErrorCode ORDER_PURCHASE_EXCEPTION = new ErrorCode(1_000_404_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, "发货数量【{}】大于订单号【{}】、订单行【{}】、物品代码【{}】的未发货数量【{}】");
} }

8
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; 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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.List;
@Schema(description = "管理后台 - 发货申请主更新 Request VO") @Schema(description = "管理后台 - 发货申请主更新 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class DeliverRequestMainUpdateReqVO extends DeliverRequestMainBaseVO { public class DeliverRequestMainUpdateReqVO extends DeliverRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<DeliverRequestDetailCreateReqVO> subList;
} }

19
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.framework.common.pojo.PageResult;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainCreateReqVO; import com.win.module.wms.controller.deliverRequest.vo.*;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainExcelVO; import com.win.module.wms.controller.issueRequest.vo.IssueRequestImportErrorVO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainRespVO; import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainBaseVO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainUpdateReqVO; 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.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO; import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO;
@ -33,5 +38,11 @@ public interface DeliverRequestMainConvert {
PageResult<DeliverRequestMainRespVO> convertPage(PageResult<DeliverRequestMainDO> page); PageResult<DeliverRequestMainRespVO> convertPage(PageResult<DeliverRequestMainDO> page);
List<DeliverRequestMainExcelVO> convertList02(List<DeliverRequestMainDO> list); List<DeliverRequestMainExcelVO> convertList02(List<DeliverRequestMainDO> list);
DeliverRequestMainDO convert(DeliverRequestMainBaseVO bean);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
DeliverRequestImportErrorVO convert(DeliverRequestMainCreateReqVO mainVo, DeliverRequestDetailDO detailDo);
} }

1
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); IssueRequestMainConvert INSTANCE = Mappers.getMapper(IssueRequestMainConvert.class);
IssueRequestMainDO convert(IssueRequestMainCreateReqVO bean); IssueRequestMainDO convert(IssueRequestMainCreateReqVO bean);
IssueRequestMainDO convert(IssueRequestMainBaseVO bean); IssueRequestMainDO convert(IssueRequestMainBaseVO bean);
IssueRequestMainDO convert(IssueRequestMainUpdateReqVO bean); IssueRequestMainDO convert(IssueRequestMainUpdateReqVO bean);

7
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.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO; import com.win.framework.mybatis.core.dataobject.BaseDO;
import javax.validation.constraints.NotBlank;
/** /**
* 客户退货申请子 DO * 客户退货申请子 DO
* *
@ -30,6 +32,7 @@ public class CustomerreturnRequestDetailDO extends BaseDO {
/** /**
* 销售订单号 * 销售订单号
*/ */
@NotBlank
private String soNumber; private String soNumber;
/** /**
* 销售订单行 * 销售订单行
@ -38,6 +41,7 @@ public class CustomerreturnRequestDetailDO extends BaseDO {
/** /**
* 包装号 * 包装号
*/ */
@NotBlank
private String packingNumber; private String packingNumber;
/** /**
* 器具号 * 器具号
@ -46,12 +50,14 @@ public class CustomerreturnRequestDetailDO extends BaseDO {
/** /**
* 批次 * 批次
*/ */
@NotBlank
private String batch; private String batch;
/** /**
* 库存状态 * 库存状态
* *
* 枚举 {@link TODO inventory_status 对应的类} * 枚举 {@link TODO inventory_status 对应的类}
*/ */
@NotBlank
private String inventoryStatus; private String inventoryStatus;
/** /**
* 从货主代码 * 从货主代码
@ -60,6 +66,7 @@ public class CustomerreturnRequestDetailDO extends BaseDO {
/** /**
* 从库位代码 * 从库位代码
*/ */
@NotBlank
private String fromLocationCode; private String fromLocationCode;
/** /**
* 到库位代码 * 到库位代码

15
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.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO; import com.win.framework.mybatis.core.dataobject.BaseDO;
import javax.validation.constraints.NotBlank;
/** /**
* 客户退货申请主 DO * 客户退货申请主 DO
* *
@ -40,10 +42,12 @@ public class CustomerreturnRequestMainDO extends BaseDO {
/** /**
* 客户代码 * 客户代码
*/ */
@NotBlank
private String customerCode; private String customerCode;
/** /**
* 客户月台代码 * 客户月台代码
*/ */
@NotBlank
private String customerDockCode; private String customerDockCode;
/** /**
* 承运商 * 承运商
@ -96,6 +100,7 @@ public class CustomerreturnRequestMainDO extends BaseDO {
/** /**
* 部门 * 部门
*/ */
@NotBlank
private String departmentCode; private String departmentCode;
/** /**
* 状态 * 状态
@ -114,30 +119,36 @@ public class CustomerreturnRequestMainDO extends BaseDO {
/** /**
* 从仓库代码 * 从仓库代码
*/ */
@NotBlank
private String fromWarehouseCode; private String fromWarehouseCode;
/** /**
* 从库位类型范围 * 从库位类型范围
* *
* 枚举 {@link TODO location_type 对应的类} * 枚举 {@link TODO location_type 对应的类}
*/ */
@NotBlank
private String fromLocationTypes; private String fromLocationTypes;
/** /**
* 从库区代码范围 * 从库区代码范围
*/ */
@NotBlank
private String fromAreaCodes; private String fromAreaCodes;
/** /**
* 到仓库代码 * 到仓库代码
*/ */
@NotBlank
private String toWarehouseCode; private String toWarehouseCode;
/** /**
* 到库位类型范围 * 到库位类型范围
* *
* 枚举 {@link TODO location_type 对应的类} * 枚举 {@link TODO location_type 对应的类}
*/ */
@NotBlank
private String toLocationTypes; private String toLocationTypes;
/** /**
* 到库区代码范围 * 到库区代码范围
*/ */
@NotBlank
private String toAreaCodes; private String toAreaCodes;
/** /**
* 到月台代码 * 到月台代码
@ -150,18 +161,22 @@ public class CustomerreturnRequestMainDO extends BaseDO {
/** /**
* 自动提交 * 自动提交
*/ */
@NotBlank
private String autoCommit; private String autoCommit;
/** /**
* 自动通过 * 自动通过
*/ */
@NotBlank
private String autoAgree; private String autoAgree;
/** /**
* 自动执行 * 自动执行
*/ */
@NotBlank
private String autoExecute; private String autoExecute;
/** /**
* 直接生成记录 * 直接生成记录
*/ */
@NotBlank
private String directCreateRecord; private String directCreateRecord;
} }

13
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.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO; import com.win.framework.mybatis.core.dataobject.BaseDO;
import javax.validation.constraints.NotBlank;
/** /**
* 客户结算申请主 DO * 客户结算申请主 DO
* *
@ -39,20 +41,24 @@ public class CustomersettleRequestMainDO extends BaseDO {
/** /**
* 客户代码 * 客户代码
*/ */
@NotBlank
private String customerCode; private String customerCode;
/** /**
* 从仓库代码 * 从仓库代码
*/ */
@NotBlank
private String fromWarehouseCode; private String fromWarehouseCode;
/** /**
* 从库位类型范围 * 从库位类型范围
* *
* 枚举 {@link TODO location_type 对应的类} * 枚举 {@link TODO location_type 对应的类}
*/ */
@NotBlank
private String fromLocationTypes; private String fromLocationTypes;
/** /**
* 从库区代码范围 * 从库区代码范围
*/ */
@NotBlank
private String fromAreaCodes; private String fromAreaCodes;
/** /**
* details * details
@ -65,6 +71,7 @@ public class CustomersettleRequestMainDO extends BaseDO {
/** /**
* 业务类型 * 业务类型
*/ */
@NotBlank
private String businessType; private String businessType;
/** /**
* 备注 * 备注
@ -89,12 +96,14 @@ public class CustomersettleRequestMainDO extends BaseDO {
/** /**
* 部门 * 部门
*/ */
@NotBlank
private String departmentCode; private String departmentCode;
/** /**
* 状态 * 状态
* *
* 枚举 {@link TODO request_status 对应的类} * 枚举 {@link TODO request_status 对应的类}
*/ */
@NotBlank
private String status; private String status;
/** /**
* 并发乐观锁 * 并发乐观锁
@ -111,18 +120,22 @@ public class CustomersettleRequestMainDO extends BaseDO {
/** /**
* 自动提交 * 自动提交
*/ */
@NotBlank
private String autoCommit; private String autoCommit;
/** /**
* 自动通过 * 自动通过
*/ */
@NotBlank
private String autoAgree; private String autoAgree;
/** /**
* 自动执行 * 自动执行
*/ */
@NotBlank
private String autoExecute; private String autoExecute;
/** /**
* 直接生成记录 * 直接生成记录
*/ */
@NotBlank
private String directCreateRecord; private String directCreateRecord;
} }

8
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.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO; import com.win.framework.mybatis.core.dataobject.BaseDO;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/** /**
* 发货申请子 DO * 发货申请子 DO
* *
@ -30,6 +33,7 @@ public class DeliverRequestDetailDO extends BaseDO {
/** /**
* 销售订单号 * 销售订单号
*/ */
@NotBlank
private String soNumber; private String soNumber;
/** /**
* 销售订单行 * 销售订单行
@ -38,6 +42,7 @@ public class DeliverRequestDetailDO extends BaseDO {
/** /**
* 包装号 * 包装号
*/ */
@NotBlank
private String packingNumber; private String packingNumber;
/** /**
* 器具号 * 器具号
@ -46,12 +51,14 @@ public class DeliverRequestDetailDO extends BaseDO {
/** /**
* 批次 * 批次
*/ */
@NotBlank
private String batch; private String batch;
/** /**
* 库存状态 * 库存状态
* *
* 枚举 {@link TODO inventory_status 对应的类} * 枚举 {@link TODO inventory_status 对应的类}
*/ */
@NotBlank
private String inventoryStatus; private String inventoryStatus;
/** /**
* 到货主代码 * 到货主代码
@ -60,6 +67,7 @@ public class DeliverRequestDetailDO extends BaseDO {
/** /**
* 到库位代码 * 到库位代码
*/ */
@NotBlank
private String toLocationCode; private String toLocationCode;
/** /**
* 主表ID * 主表ID

19
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; package com.win.module.wms.dal.dataobject.deliverRequest;
import lombok.*; import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO; import com.win.framework.mybatis.core.dataobject.BaseDO;
import javax.validation.constraints.NotBlank;
/** /**
* 发货申请主 DO * 发货申请主 DO
* *
@ -39,10 +37,12 @@ public class DeliverRequestMainDO extends BaseDO {
/** /**
* 客户代码 * 客户代码
*/ */
@NotBlank
private String customerCode; private String customerCode;
/** /**
* 客户月台代码 * 客户月台代码
*/ */
@NotBlank
private String customerDockCode; private String customerDockCode;
/** /**
* 承运商 * 承运商
@ -63,20 +63,24 @@ public class DeliverRequestMainDO extends BaseDO {
/** /**
* 从仓库代码 * 从仓库代码
*/ */
@NotBlank
private String fromWarehouseCode; private String fromWarehouseCode;
/** /**
* 到仓库代码 * 到仓库代码
*/ */
@NotBlank
private String toWarehouseCode; private String toWarehouseCode;
/** /**
* 从库位类型范围 * 从库位类型范围
* *
* 枚举 {@link TODO location_type 对应的类} * 枚举 {@link TODO location_type 对应的类}
*/ */
@NotBlank
private String fromLocationTypes; private String fromLocationTypes;
/** /**
* 从库区代码范围 * 从库区代码范围
*/ */
@NotBlank
private String fromAreaCodes; private String fromAreaCodes;
/** /**
* details * details
@ -113,12 +117,14 @@ public class DeliverRequestMainDO extends BaseDO {
/** /**
* 部门 * 部门
*/ */
@NotBlank
private String departmentCode; private String departmentCode;
/** /**
* 状态 * 状态
* *
* 枚举 {@link TODO request_status 对应的类} * 枚举 {@link TODO request_status 对应的类}
*/ */
@NotBlank
private String status; private String status;
/** /**
* 并发乐观锁 * 并发乐观锁
@ -133,6 +139,7 @@ public class DeliverRequestMainDO extends BaseDO {
* *
* 枚举 {@link TODO location_type 对应的类} * 枚举 {@link TODO location_type 对应的类}
*/ */
@NotBlank
private String toLocationTypes; private String toLocationTypes;
/** /**
* 到库区范围 * 到库区范围
@ -149,18 +156,22 @@ public class DeliverRequestMainDO extends BaseDO {
/** /**
* 自动提交 * 自动提交
*/ */
@NotBlank
private String autoCommit; private String autoCommit;
/** /**
* 自动通过 * 自动通过
*/ */
@NotBlank
private String autoAgree; private String autoAgree;
/** /**
* 自动执行 * 自动执行
*/ */
@NotBlank
private String autoExecute; private String autoExecute;
/** /**
* 直接生成记录 * 直接生成记录
*/ */
@NotBlank
private String directCreateRecord; private String directCreateRecord;
} }

6
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.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO; import com.win.framework.mybatis.core.dataobject.BaseDO;
import javax.validation.constraints.NotBlank;
/** /**
* 制品上架申请子 DO * 制品上架申请子 DO
* *
@ -30,6 +32,7 @@ public class ProductputawayRequestDetailDO extends BaseDO {
/** /**
* 包装号 * 包装号
*/ */
@NotBlank
private String packingNumber; private String packingNumber;
/** /**
* 器具号 * 器具号
@ -38,12 +41,14 @@ public class ProductputawayRequestDetailDO extends BaseDO {
/** /**
* 批次 * 批次
*/ */
@NotBlank
private String batch; private String batch;
/** /**
* 库存状态 * 库存状态
* *
* 枚举 {@link TODO inventory_status 对应的类} * 枚举 {@link TODO inventory_status 对应的类}
*/ */
@NotBlank
private String inventoryStatus; private String inventoryStatus;
/** /**
* 订单号 * 订单号
@ -56,6 +61,7 @@ public class ProductputawayRequestDetailDO extends BaseDO {
/** /**
* 从库位代码 * 从库位代码
*/ */
@NotBlank
private String fromLocationCode; private String fromLocationCode;
/** /**
* 主表ID * 主表ID

16
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; package com.win.module.wms.dal.dataobject.productputawayRequest;
import lombok.*; import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO; import com.win.framework.mybatis.core.dataobject.BaseDO;
import javax.validation.constraints.NotBlank;
/** /**
* 制品上架申请主 DO * 制品上架申请主 DO
* *
@ -35,22 +33,26 @@ public class ProductputawayRequestMainDO extends BaseDO {
/** /**
* 从仓库代码 * 从仓库代码
*/ */
@NotBlank
private String fromWarehouseCode; private String fromWarehouseCode;
/** /**
* 到仓库代码 * 到仓库代码
*/ */
@NotBlank
private String toWarehouseCode; private String toWarehouseCode;
/** /**
* 从库位类型范围 * 从库位类型范围
* *
* 枚举 {@link TODO location_type 对应的类} * 枚举 {@link TODO location_type 对应的类}
*/ */
@NotBlank
private String fromLocationTypes; private String fromLocationTypes;
/** /**
* 到库位类型范围 * 到库位类型范围
* *
* 枚举 {@link TODO location_type 对应的类} * 枚举 {@link TODO location_type 对应的类}
*/ */
@NotBlank
private String toLocationTypes; private String toLocationTypes;
/** /**
* 从库区代码范围 * 从库区代码范围
@ -95,12 +97,14 @@ public class ProductputawayRequestMainDO extends BaseDO {
/** /**
* 部门 * 部门
*/ */
@NotBlank
private String departmentCode; private String departmentCode;
/** /**
* 状态 * 状态
* *
* 枚举 {@link TODO request_status 对应的类} * 枚举 {@link TODO request_status 对应的类}
*/ */
@NotBlank
private String status; private String status;
/** /**
* 并发乐观锁 * 并发乐观锁
@ -117,18 +121,22 @@ public class ProductputawayRequestMainDO extends BaseDO {
/** /**
* 自动提交 * 自动提交
*/ */
@NotBlank
private String autoCommit; private String autoCommit;
/** /**
* 自动通过 * 自动通过
*/ */
@NotBlank
private String autoAgree; private String autoAgree;
/** /**
* 自动执行 * 自动执行
*/ */
@NotBlank
private String autoExecute; private String autoExecute;
/** /**
* 直接生成记录 * 直接生成记录
*/ */
@NotBlank
private String directCreateRecord; private String directCreateRecord;
} }

6
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.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO; import com.win.framework.mybatis.core.dataobject.BaseDO;
import javax.validation.constraints.NotBlank;
/** /**
* 制品报废申请子 DO * 制品报废申请子 DO
* *
@ -34,6 +36,7 @@ public class ProductscrapRequestDetailDO extends BaseDO {
/** /**
* 包装号 * 包装号
*/ */
@NotBlank
private String packingNumber; private String packingNumber;
/** /**
* 器具号 * 器具号
@ -42,16 +45,19 @@ public class ProductscrapRequestDetailDO extends BaseDO {
/** /**
* 批次 * 批次
*/ */
@NotBlank
private String batch; private String batch;
/** /**
* 从库位代码 * 从库位代码
*/ */
@NotBlank
private String fromLocationCode; private String fromLocationCode;
/** /**
* 库存状态 * 库存状态
* *
* 枚举 {@link TODO inventory_status 对应的类} * 枚举 {@link TODO inventory_status 对应的类}
*/ */
@NotBlank
private String inventoryStatus; private String inventoryStatus;
/** /**
* 原因 * 原因

9
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.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO; import com.win.framework.mybatis.core.dataobject.BaseDO;
import javax.validation.constraints.NotBlank;
/** /**
* 制品报废申请主 DO * 制品报废申请主 DO
* *
@ -31,6 +33,7 @@ public class ProductscrapRequestMainDO extends BaseDO {
/** /**
* 从仓库代码 * 从仓库代码
*/ */
@NotBlank
private String fromWarehouseCode; private String fromWarehouseCode;
/** /**
* details * details
@ -87,10 +90,12 @@ public class ProductscrapRequestMainDO extends BaseDO {
* *
* 枚举 {@link TODO location_type 对应的类} * 枚举 {@link TODO location_type 对应的类}
*/ */
@NotBlank
private String fromLocationTypes; private String fromLocationTypes;
/** /**
* 从库区代码范围 * 从库区代码范围
*/ */
@NotBlank
private String fromAreaCodes; private String fromAreaCodes;
/** /**
* 工作流流水号 * 工作流流水号
@ -99,18 +104,22 @@ public class ProductscrapRequestMainDO extends BaseDO {
/** /**
* 自动提交 * 自动提交
*/ */
@NotBlank
private String autoCommit; private String autoCommit;
/** /**
* 自动通过 * 自动通过
*/ */
@NotBlank
private String autoAgree; private String autoAgree;
/** /**
* 自动执行 * 自动执行
*/ */
@NotBlank
private String autoExecute; private String autoExecute;
/** /**
* 直接生成记录 * 直接生成记录
*/ */
@NotBlank
private String directCreateRecord; private String directCreateRecord;
} }

304
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.collection.CollUtil;
import cn.hutool.core.exceptions.UtilException; 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.pojo.CustomConditions;
import com.win.framework.common.util.validation.ValidationUtils; import com.win.framework.common.util.validation.ValidationUtils;
import com.win.framework.dict.core.util.DictFrameworkUtils; 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.DictDataApi;
import com.win.module.system.api.dict.dto.DictDataRespDTO; import com.win.module.system.api.dict.dto.DictDataRespDTO;
import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.deliverRequest.vo.*; 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.*;
import com.win.module.wms.controller.issueRequest.vo.IssueRequestImportErrorVO;
import com.win.module.wms.convert.deliverRequest.DeliverRequestDetailConvert; import com.win.module.wms.convert.deliverRequest.DeliverRequestDetailConvert;
import com.win.module.wms.convert.issueRequest.IssueRequestDetailConvert; import com.win.module.wms.convert.issueRequest.IssueRequestDetailConvert;
import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; 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.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.issueRequest.IssueRequestMainDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; 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.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.sale.SaleDetailDO; import com.win.module.wms.dal.dataobject.sale.SaleDetailDO;
import com.win.module.wms.dal.mysql.deliverRequest.DeliverRequestDetailMapper; import com.win.module.wms.dal.mysql.deliverRequest.DeliverRequestDetailMapper;
import com.win.module.wms.enums.DictTypeConstants; 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.customer.*;
import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.service.requestsetting.RequestsettingService;
@ -68,6 +72,9 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
@Resource @Resource
private Validator validator; private Validator validator;
@Resource
private TrendsApi trendsApi;
@Resource @Resource
private DictDataApi dictDataApi; private DictDataApi dictDataApi;
@Resource @Resource
@ -79,23 +86,100 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
@Resource @Resource
private DeliverJobMainService deliverJobMainService; private DeliverJobMainService deliverJobMainService;
@Override @Override
public Long createDeliverRequestMain(DeliverRequestMainCreateReqVO createReqVO) { public Long createDeliverRequestMain(DeliverRequestMainCreateReqVO createReqVO) {
// 插入 // 插入
DeliverRequestMainDO deliverRequestMain = DeliverRequestMainConvert.INSTANCE.convert(createReqVO); RequestsettingDO requestsettingDO = new RequestsettingDO();
deliverRequestMainMapper.insert(deliverRequestMain); DeliverRequestMainDO deliverRequestMain = validatorToCreate(createReqVO,requestsettingDO);
// 返回 //调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(deliverRequestMain.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "IssueRequest", "增加了发料申请", TrendsTypeEnum.CREATE);
return deliverRequestMain.getId(); return deliverRequestMain.getId();
} }
private DeliverRequestMainDO validatorToCreate(DeliverRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = new BusinesstypeDO();
DeliverRequestMainDO deliverRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO);
List<DeliverRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<DeliverRequestDetailDO> 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 @Override
public void updateDeliverRequestMain(DeliverRequestMainUpdateReqVO updateReqVO) { public void updateDeliverRequestMain(DeliverRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = new RequestsettingDO();
// 校验存在 // 校验存在
validateDeliverRequestMainExists(updateReqVO.getId()); validateDeliverRequestMainExists(updateReqVO.getId());
// 更新 // 更新
DeliverRequestMainDO deliverRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
DeliverRequestMainDO updateObj = DeliverRequestMainConvert.INSTANCE.convert(updateReqVO); DeliverRequestMainDO updateObj = DeliverRequestMainConvert.INSTANCE.convert(updateReqVO);
deliverRequestMainMapper.updateById(updateObj); deliverRequestMainMapper.updateById(updateObj);
} }
private DeliverRequestMainDO validatorToUpdate(DeliverRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = new BusinesstypeDO();
DeliverRequestMainDO deliverRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<DeliverRequestDetailCreateReqVO> subList = updateReqVO.getSubList();
List<DeliverRequestDetailDO> subDOList = DeliverRequestDetailConvert.INSTANCE.convertList03(subList);
for (DeliverRequestDetailDO issueRequestDetailDO : subDOList) {
validateDetailMethod(issueRequestDetailDO);
}
deliverRequestMainMapper.updateById(deliverRequestMainDO);
deliverRequestDetailMapper.updateBatch(subDOList);
return deliverRequestMainDO;
}
@Override @Override
public void deleteDeliverRequestMain(Long id) { public void deleteDeliverRequestMain(Long id) {
@ -138,21 +222,113 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
public String Isuom(String uom1, String uom2) { public String Isuom(String uom1, String uom2) {
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(uom1); DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(uom1);
String value = dictDataRespDTO.getLabel(); String value = dictDataRespDTO.getLabel();
if(uom2.equals(value)){ DictDataRespDTO dictDataRespDTO1 = dictDataApi.selectDictValue(uom2);
String value2 = dictDataRespDTO1.getLabel();
if(value2.equals(value)){
return "ture"; return "ture";
}else { }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); BigDecimal resultqty = orderqty.subtract(shippedqty);
if( resultqty.compareTo(detailqty)>0 ) if( resultqty.compareTo(detailqty)>0 )
return "TURE"; return "TURE";
else{ 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 @Override
@Transactional @Transactional
public List<DeliverRequestImportErrorVO> importDeliverRequestList(List<DeliverRequestMainCreateReqVO> datas, Integer mode, boolean updatePart){ public List<DeliverRequestImportErrorVO> importDeliverRequestList(List<DeliverRequestMainCreateReqVO> datas, Integer mode, boolean updatePart){
@ -161,101 +337,39 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
} }
List<DeliverRequestImportErrorVO> errorList = new ArrayList<>(); List<DeliverRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> { datas.forEach(createReqVO -> {
String messageMain = "";
BusinesstypeDO businesstypeDO = null; BusinesstypeDO businesstypeDO = new BusinesstypeDO();
try{ DeliverRequestMainDO mainDo = DeliverRequestMainConvert.INSTANCE.convert(createReqVO);
customerService.selectCustomerExist(createReqVO.getCustomerCode()); String messageMain = validateDeliverRequestMainImport(mainDo, businesstypeDO);
}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);
List<DeliverRequestDetailCreateReqVO> subList = createReqVO.getSubList(); List<DeliverRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<DeliverRequestDetailDO> subDOList = DeliverRequestDetailConvert.INSTANCE.convertList03(subList); List<DeliverRequestDetailDO> subDOList = DeliverRequestDetailConvert.INSTANCE.convertList03(subList);
// 是否有错误数据
boolean flag = true;
for (DeliverRequestDetailDO detailDO : subDOList) { for (DeliverRequestDetailDO detailDO : subDOList) {
String messageDetail = ""; String messageDetail = validateIssueRequestDetailImport(detailDO, mainDo, businesstypeDO);
try { if (!messageMain.isEmpty() || messageDetail.isEmpty()) {
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); DeliverRequestImportErrorVO importErrorVO = DeliverRequestMainConvert.INSTANCE.convert(createReqVO, detailDO);
detailDO.setItemDesc1(itembasicDO.getDesc1()); importErrorVO.setImportStatus("失败");
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("失败");
messageMain = messageMain + messageDetail; messageMain = messageMain + messageDetail;
importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importVO); errorList.add(importErrorVO);
} else { flag = false;
detailDO.setNumber(createReqVO.getNumber());
detailDO.setMasterId(createReqVO.getId());
} }
} }
DeliverRequestMainDO createobj = DeliverRequestMainConvert.INSTANCE.convert(createReqVO); //写入数据
if (errorList.isEmpty()) { if (flag) {
DeliverRequestMainDO existDeliverRequestMainDO = deliverRequestMainMapper.selectWorkShopCodeAndUseOnTheWayLocation(createReqVO.getCustomerCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
if (existDeliverRequestMainDO == null && mode != 3) { mainDo.setNumber(number);
deliverRequestMainMapper.insert(createobj); mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
deliverRequestDetailMapper.insertBatch(subDOList); deliverRequestMainMapper.insert(mainDo);
} else if (existDeliverRequestMainDO != null && mode != 2) { for (DeliverRequestDetailDO detailDO : subDOList) {
deliverRequestMainMapper.updateById(createobj); detailDO.setMasterId(mainDo.getId());
deliverRequestDetailMapper.updateBatch(subDOList); detailDO.setNumber(number);
} }
deliverRequestDetailMapper.insertBatch(subDOList);
} }
}); });
if (!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList; return errorList;
} }
} }

Loading…
Cancel
Save