Browse Source

Merge remote-tracking branch 'origin/master'

master
songguoqiang 2 years ago
parent
commit
415a4bab25
  1. 10
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 34
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestDetailBaseVO.java
  3. 25
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainBaseVO.java
  4. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainCreateReqVO.java
  5. 33
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainImportVO.java
  6. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestMainConvert.java
  7. 18
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java
  8. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptRequest/PurchasereceiptRequestMainMapper.java
  9. 18
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/job/JobStatusEnum.java
  10. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/job/JobStatusState.java
  11. 18
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/order/OrderStatusEnum.java
  12. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/order/OrderStatusState.java
  13. 24
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/plan/PlanStatusEnum.java
  14. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/plan/PlanStatusState.java
  15. 28
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusEnum.java
  16. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusState.java
  17. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainService.java
  18. 264
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java
  19. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleServiceImpl.java

10
win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java

@ -404,24 +404,20 @@ public interface ErrorCodeConstants {
ErrorCode PURCHASE_PLAN_DETAIL_NOT_EXISTS = new ErrorCode(1_000_069_001, "要货计划子不存在"); ErrorCode PURCHASE_PLAN_DETAIL_NOT_EXISTS = new ErrorCode(1_000_069_001, "要货计划子不存在");
//供应商发货申请主ErrorCode //供应商发货申请主ErrorCode
ErrorCode SUPPLIERDELIVER_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_070_000, "供应商发货申请主不存在"); ErrorCode SUPPLIERDELIVER_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_070_000, "供应商发货申请主不存在");
//供应商发货申请子ErrorCode
ErrorCode SUPPLIERDELIVER_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_070_001, "供应商发货申请子不存在"); ErrorCode SUPPLIERDELIVER_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_070_001, "供应商发货申请子不存在");
//供应商发货记录主ErrorCode
ErrorCode SUPPLIERDELIVER_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_071_000, "供应商发货记录主不存在"); ErrorCode SUPPLIERDELIVER_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_071_000, "供应商发货记录主不存在");
//供应商发货记录子ErrorCode
ErrorCode SUPPLIERDELIVER_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_071_001, "供应商发货记录不存在"); ErrorCode SUPPLIERDELIVER_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_071_001, "供应商发货记录不存在");
//采购收货申请主ErrorCode
ErrorCode PURCHASERECEIPT_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_072_000, "采购收货申请主不存在"); ErrorCode PURCHASERECEIPT_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_072_000, "采购收货申请主不存在");
//采购收货申请子ErrorCode
ErrorCode PURCHASERECEIPT_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_072_001, "采购收货申请子不存在"); ErrorCode PURCHASERECEIPT_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_072_001, "采购收货申请子不存在");
//采购收货任务主ErrorCode //采购收货任务主ErrorCode
ErrorCode PURCHASERECEIPT_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_073_000, "采购收货任务主不存在"); ErrorCode PURCHASERECEIPT_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_073_000, "采购收货任务主不存在");
//采购收货任务子ErrorCode //采购收货任务子ErrorCode
ErrorCode PURCHASERECEIPT_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_073_001, "采购收货任务子不存在"); ErrorCode PURCHASERECEIPT_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_073_001, "采购收货任务子不存在");
ErrorCode PURCHASERECEIPT_JOB_MAIN_STATUS_ERROR = new ErrorCode(1_000_073_002, "采购收货任务状态错误"); ErrorCode PURCHASERECEIPT_JOB_MAIN_STATUS_ERROR = new ErrorCode(1_000_073_002, "采购收货任务状态错误");
//采购收货记录主ErrorCode ErrorCode PURCHASERECEIPT_REQUEST_STATUS_NOT_NEW = new ErrorCode(1_000_073_003, "采购收货不是新增状态,不能修改");
ErrorCode PURCHASERECEIPT_REQUEST_JOB_EXISTS = new ErrorCode(1_000_073_004, "采购收货存在采购收货任务单,不能删除");
//采购收货任务子ErrorCode
ErrorCode PURCHASERECEIPT_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_074_000, "采购收货记录主不存在"); ErrorCode PURCHASERECEIPT_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_074_000, "采购收货记录主不存在");
//采购收货记录子ErrorCode
ErrorCode PURCHASERECEIPT_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_074_001, "采购收货记录子不存在"); ErrorCode PURCHASERECEIPT_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_074_001, "采购收货记录子不存在");
//采购退货申请主ErrorCode //采购退货申请主ErrorCode
ErrorCode PURCHASERETURN_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_075_000, "采购退货申请主不存在"); ErrorCode PURCHASERETURN_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_075_000, "采购退货申请主不存在");

34
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestDetailBaseVO.java

@ -1,19 +1,13 @@
package com.win.module.wms.controller.purchasereceiptRequest.vo; package com.win.module.wms.controller.purchasereceiptRequest.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.Data;
import java.util.*; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.time.LocalDateTime; import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime; import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ -35,49 +29,42 @@ public class PurchasereceiptRequestDetailBaseVO {
private String containerNumber; private String containerNumber;
@Schema(description = "批次", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "批次", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "批次不能为空") @NotBlank(message = "批次不能为空")
private String batch; private String batch;
@Schema(description = "替代批次") @Schema(description = "替代批次")
private String altBatch; private String altBatch;
@Schema(description = "到货日期", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "到货日期", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "到货日期不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime arriveDate; private LocalDateTime arriveDate;
@Schema(description = "生产日期", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "生产日期", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "生产日期不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime produceDate; private LocalDateTime produceDate;
@Schema(description = "过期日期", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "过期日期", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "过期日期不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime expireDate; private LocalDateTime expireDate;
@Schema(description = "库存状态", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "库存状态", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "库存状态不能为空")
private String inventoryStatus; private String inventoryStatus;
@Schema(description = "从库位代码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "从库位代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从库位代码不能为空")
private String fromLocationCode; private String fromLocationCode;
@Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "订单号不能为空") @NotBlank(message = "订单号不能为空")
private String poNumber; private String poNumber;
@Schema(description = "订单行", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "订单行", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "订单行不能为空") @NotBlank(message = "订单行不能为空")
private String poLine; private String poLine;
@Schema(description = "标包数量", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "标包数量", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "标包数量不能为空")
private BigDecimal stdPackQty; private BigDecimal stdPackQty;
@Schema(description = "标包单位", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "标包单位", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "标包单位不能为空")
private String stdPackUnit; private String stdPackUnit;
@Schema(description = "供应商计量数量") @Schema(description = "供应商计量数量")
@ -87,14 +74,13 @@ public class PurchasereceiptRequestDetailBaseVO {
private String supplierPackUnit; private String supplierPackUnit;
@Schema(description = "转换率", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "转换率", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "转换率不能为空")
private BigDecimal convertRate; private BigDecimal convertRate;
@Schema(description = "单据号") @Schema(description = "单据号")
private String number; private String number;
@Schema(description = "物品代码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "物品代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "物品代码不能为空") @NotBlank(message = "物品代码不能为空")
private String itemCode; private String itemCode;
@Schema(description = "备注") @Schema(description = "备注")
@ -113,9 +99,11 @@ public class PurchasereceiptRequestDetailBaseVO {
private String projectCode; private String projectCode;
@Schema(description = "数量") @Schema(description = "数量")
@NotBlank(message = "数量不能为空")
private BigDecimal qty; private BigDecimal qty;
@Schema(description = "计量单位") @Schema(description = "计量单位")
@NotBlank(message = "计量单位不能为空")
private String uom; private String uom;
@Schema(description = "最后更新时间") @Schema(description = "最后更新时间")

25
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainBaseVO.java

@ -1,15 +1,13 @@
package com.win.module.wms.controller.purchasereceiptRequest.vo; package com.win.module.wms.controller.purchasereceiptRequest.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.Data;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/** /**
@ -22,15 +20,15 @@ public class PurchasereceiptRequestMainBaseVO {
@Schema(description = "id", example = "id") @Schema(description = "id", example = "id")
private Long id; private Long id;
@Schema(description = "发货单号") @Schema(description = "发货单号")
private String asnNumber; private String asnNumber;
@Schema(description = "要货计划单号") @Schema(description = "要货计划单号")
private String ppNumber; private String ppNumber;
@OnlyOne
@Schema(description = "供应商代码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "供应商代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "供应商代码不能为空") @NotBlank(message = "供应商代码不能为空")
private String supplierCode; private String supplierCode;
@Schema(description = "承运商") @Schema(description = "承运商")
@ -40,11 +38,9 @@ public class PurchasereceiptRequestMainBaseVO {
private String transferMode; private String transferMode;
@Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从仓库代码不能为空")
private String fromWarehouseCode; private String fromWarehouseCode;
@Schema(description = "到仓库代码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "到仓库代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "到仓库代码不能为空")
private String toWarehouseCode; private String toWarehouseCode;
@Schema(description = "从库位类型范围") @Schema(description = "从库位类型范围")
@ -63,11 +59,9 @@ public class PurchasereceiptRequestMainBaseVO {
private String toDockCode; private String toDockCode;
@Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "单据号不能为空")
private String number; private String number;
@Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "业务类型不能为空")
private String businessType; private String businessType;
@Schema(description = "备注") @Schema(description = "备注")
@ -89,7 +83,6 @@ public class PurchasereceiptRequestMainBaseVO {
private LocalDateTime dueTime; private LocalDateTime dueTime;
@Schema(description = "部门", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "部门", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "部门不能为空")
private String departmentCode; private String departmentCode;
@Schema(description = "最后更新时间") @Schema(description = "最后更新时间")
@ -103,19 +96,15 @@ public class PurchasereceiptRequestMainBaseVO {
private String status; private String status;
@Schema(description = "自动提交", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "自动提交", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "自动提交不能为空")
private String autoCommit; private String autoCommit;
@Schema(description = "自动通过", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "自动通过", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "自动通过不能为空")
private String autoAgree; private String autoAgree;
@Schema(description = "自动执行", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "自动执行", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "自动执行不能为空")
private String autoExecute; private String autoExecute;
@Schema(description = "直接生成记录", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "直接生成记录", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "直接生成记录不能为空")
private String directCreateRecord; private String directCreateRecord;
@Schema(description = "车牌号") @Schema(description = "车牌号")

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainCreateReqVO.java

@ -6,6 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.ToString; import lombok.ToString;
import javax.validation.Valid;
import java.util.List; import java.util.List;
@Schema(description = "管理后台 - 采购收货申请主创建 Request VO") @Schema(description = "管理后台 - 采购收货申请主创建 Request VO")
@ -16,5 +17,5 @@ public class PurchasereceiptRequestMainCreateReqVO extends PurchasereceiptReques
@SubObject @SubObject
@Schema(description = "子表数据") @Schema(description = "子表数据")
private List<PurchasereceiptRequestDetailCreateReqVO> subList; private List<@Valid PurchasereceiptRequestDetailCreateReqVO> subList;
} }

33
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainImportVO.java

@ -1,12 +1,12 @@
package com.win.module.wms.controller.purchasereceiptRequest.vo; package com.win.module.wms.controller.purchasereceiptRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -24,41 +24,48 @@ public class PurchasereceiptRequestMainImportVO {
//主表数据 //主表数据
@ExcelProperty("供应商代码") @ExcelProperty("供应商代码")
private String supplier_code; private String supplierCode;
@NotBlank(message="订单号不能为空")
@ExcelProperty("订单号") @ExcelProperty("订单号")
private String po_number; private String poNumber;
@NotBlank(message="订单行不能为空")
@ExcelProperty("订单行") @ExcelProperty("订单行")
private String po_line; private String poLine;
@NotBlank(message="物品代码不能为空")
@ExcelProperty("物品代码") @ExcelProperty("物品代码")
private String item_code; private String itemCode;
@NotBlank(message="批次不能为空")
@ExcelProperty("批次") @ExcelProperty("批次")
private String batch; private String batch;
@NotBlank(message="数量不能为空")
@ExcelProperty("数量") @ExcelProperty("数量")
@ColumnWidth(value = 16)
private String qty; private String qty;
@NotBlank(message="计量单位不能为空")
@ExcelProperty("计量单位") @ExcelProperty("计量单位")
@ColumnWidth(value = 16)
private String uom; private String uom;
@ExcelProperty("到货日期") @ExcelProperty("到货日期")
private String isConsignment; private LocalDateTime arriveDate;
@ExcelProperty("生产日期") @ExcelProperty("生产日期")
private LocalDateTime dueDate; private LocalDateTime produceDate;
//子表数据 //子表数据
@ExcelProperty("过期日期") @ExcelProperty("过期日期")
private String itemCode; private LocalDateTime expireDate;
@ExcelProperty("承运商") @ExcelProperty("承运商")
private String orderQty; private String carrierCode;
@ExcelProperty("运输方式") @ExcelProperty("运输方式")
private String aa; private String transferMode;
@ExcelProperty("车牌号") @ExcelProperty("车牌号")
private BigDecimal overReceivingPercent; private BigDecimal vehiclePlateNumber;
} }

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestMainConvert.java

@ -1,16 +1,13 @@
package com.win.module.wms.convert.purchasereceiptRequest; package com.win.module.wms.convert.purchasereceiptRequest;
import java.util.*;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.purchasereceiptRequest.vo.*;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO; import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExcelVO; import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainRespVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainUpdateReqVO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import java.util.List;
/** /**
* 采购收货申请主 Convert * 采购收货申请主 Convert
@ -34,4 +31,6 @@ public interface PurchasereceiptRequestMainConvert {
List<PurchasereceiptRequestMainExcelVO> convertList02(List<PurchasereceiptRequestMainDO> list); List<PurchasereceiptRequestMainExcelVO> convertList02(List<PurchasereceiptRequestMainDO> list);
PurchasereceiptRequestMainImportErrorVO convert(PurchasereceiptRequestMainCreateReqVO mainVo, PurchasereceiptRequestDetailDO detailDo);
} }

18
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java

@ -1,15 +1,18 @@
package com.win.module.wms.dal.mysql.purchasereceiptJob; package com.win.module.wms.dal.mysql.purchasereceiptJob;
import java.util.*;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX; import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainExportReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainPageReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainRespVO;
import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO; import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO;
import com.win.module.wms.enums.order.OrderStatusEnum;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import com.win.module.wms.controller.purchasereceiptJob.vo.*;
import java.util.List;
/** /**
* 采购收货任务主 Mapper * 采购收货任务主 Mapper
@ -71,6 +74,13 @@ public interface PurchasereceiptJobMainMapper extends BaseMapperX<Purchasereceip
default PageResult<PurchasereceiptJobMainDO> selectSenior(CustomConditions conditions) { default PageResult<PurchasereceiptJobMainDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions)); return selectPage(conditions, QueryWrapperUtils.structure(conditions));
} }
default Long selectByRequestNumber(String requestNumbere) {
return selectCount(new LambdaQueryWrapperX<PurchasereceiptJobMainDO>()
.eq(PurchasereceiptJobMainDO::getRequestNumber, requestNumbere)
.eq(PurchasereceiptJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode()));
}
default List<PurchasereceiptJobMainDO> selectList(PurchasereceiptJobMainExportReqVO reqVO) { default List<PurchasereceiptJobMainDO> selectList(PurchasereceiptJobMainExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<PurchasereceiptJobMainDO>() return selectList(new LambdaQueryWrapperX<PurchasereceiptJobMainDO>()
.eqIfPresent(PurchasereceiptJobMainDO::getRequestNumber, reqVO.getRequestNumber()) .eqIfPresent(PurchasereceiptJobMainDO::getRequestNumber, reqVO.getRequestNumber())

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptRequest/PurchasereceiptRequestMainMapper.java

@ -1,17 +1,17 @@
package com.win.module.wms.dal.mysql.purchasereceiptRequest; package com.win.module.wms.dal.mysql.purchasereceiptRequest;
import java.util.*;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX; import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExportReqVO; import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExportReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainPageReqVO; import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/** /**
* 采购收货申请主 Mapper * 采购收货申请主 Mapper
* *
@ -55,6 +55,11 @@ public interface PurchasereceiptRequestMainMapper extends BaseMapperX<Purchasere
default PageResult<PurchasereceiptRequestMainDO> selectSenior(CustomConditions conditions) { default PageResult<PurchasereceiptRequestMainDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions)); return selectPage(conditions, QueryWrapperUtils.structure(conditions));
} }
default PurchasereceiptRequestMainDO selectBySupplierCode(String supplierCode) {
return selectOne(PurchasereceiptRequestMainDO::getSupplierCode,supplierCode);
}
default List<PurchasereceiptRequestMainDO> selectList(PurchasereceiptRequestMainExportReqVO reqVO) { default List<PurchasereceiptRequestMainDO> selectList(PurchasereceiptRequestMainExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<PurchasereceiptRequestMainDO>() return selectList(new LambdaQueryWrapperX<PurchasereceiptRequestMainDO>()
.eqIfPresent(PurchasereceiptRequestMainDO::getAsnNumber, reqVO.getAsnNumber()) .eqIfPresent(PurchasereceiptRequestMainDO::getAsnNumber, reqVO.getAsnNumber())

18
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/job/JobStatusEnum.java

@ -1,19 +1,19 @@
package com.win.module.wms.enums.job; package com.win.module.wms.enums.job;
public enum JobStatusEnum { public enum JobStatusEnum {
PENDING(1), // 待处理 PENDING("1"), // 待处理
PROCESSING(2), // 进行中 PROCESSING("2"), // 进行中
COMPLETED(3), // 完成 COMPLETED("3"), // 完成
CLOSED(4), // 关闭 CLOSED("4"), // 关闭
; ;
private final Integer code; private final String code;
JobStatusEnum(int code) { JobStatusEnum(String code) {
this.code = code; this.code = code;
} }
public int getCode() { public String getCode() {
return code; return code;
} }
@ -22,9 +22,9 @@ public enum JobStatusEnum {
* @param status * @param status
* @return * @return
*/ */
static JobStatusEnum getJobStatusEnum(int status) { static JobStatusEnum getJobStatusEnum(String status) {
for (JobStatusEnum jobStatusEnum : values()) { for (JobStatusEnum jobStatusEnum : values()) {
if (jobStatusEnum.getCode() == status) { if (jobStatusEnum.getCode().equals(status)) {
return jobStatusEnum; return jobStatusEnum;
} }
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/job/JobStatusState.java

@ -21,7 +21,7 @@ public class JobStatusState {
* 构造函数当前状态 * 构造函数当前状态
* @param status * @param status
*/ */
public JobStatusState(int status) { public JobStatusState(String status) {
this.jobStatusEnum = JobStatusEnum.getJobStatusEnum(status); this.jobStatusEnum = JobStatusEnum.getJobStatusEnum(status);
} }

18
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/order/OrderStatusEnum.java

@ -2,18 +2,18 @@ package com.win.module.wms.enums.order;
public enum OrderStatusEnum { public enum OrderStatusEnum {
READY(1), // 准备 READY("1"), // 准备
PUBLISHED(2), // 发布 PUBLISHED("2"), // 发布
CLOSED(3), // 关闭 CLOSED("3"), // 关闭
COMPLETED(4), // 已完成 COMPLETED("4"), // 已完成
; ;
private final Integer code; private String code;
OrderStatusEnum(int code) { OrderStatusEnum(String code) {
this.code = code; this.code = code;
} }
public int getCode() { public String getCode() {
return code; return code;
} }
@ -22,9 +22,9 @@ public enum OrderStatusEnum {
* @param status * @param status
* @return * @return
*/ */
static OrderStatusEnum getJobStatusEnum(int status) { static OrderStatusEnum getJobStatusEnum(String status) {
for (OrderStatusEnum jobStatusEnum : values()) { for (OrderStatusEnum jobStatusEnum : values()) {
if (jobStatusEnum.getCode() == status) { if (jobStatusEnum.getCode().equals(status)) {
return jobStatusEnum; return jobStatusEnum;
} }
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/order/OrderStatusState.java

@ -21,7 +21,7 @@ public class OrderStatusState {
* 构造函数当前状态 * 构造函数当前状态
* @param status * @param status
*/ */
public OrderStatusState(int status) { public OrderStatusState(String status) {
this.orderStatusEnum = OrderStatusEnum.getJobStatusEnum(status); this.orderStatusEnum = OrderStatusEnum.getJobStatusEnum(status);
} }

24
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/plan/PlanStatusEnum.java

@ -2,21 +2,21 @@ package com.win.module.wms.enums.plan;
public enum PlanStatusEnum { public enum PlanStatusEnum {
NEW(1), // 新增 NEW("1"), // 新增
REVIEWING(2), // 审批中 REVIEWING("2"), // 审批中
AGREED(3), // 审批通过 AGREED("3"), // 审批通过
REFUSED(4), // 审批驳回 REFUSED("4"), // 审批驳回
CLOSED(5), // 关闭 CLOSED("5"), // 关闭
PUBLISHED(6), // 发布 PUBLISHED("6"), // 发布
COMPLETED(7), // 已完成 COMPLETED("7"), // 已完成
; ;
private final Integer code; private final String code;
PlanStatusEnum(int code) { PlanStatusEnum(String code) {
this.code = code; this.code = code;
} }
public int getCode() { public String getCode() {
return code; return code;
} }
@ -25,9 +25,9 @@ public enum PlanStatusEnum {
* @param status * @param status
* @return * @return
*/ */
static PlanStatusEnum getJobStatusEnum(int status) { static PlanStatusEnum getJobStatusEnum(String status) {
for (PlanStatusEnum jobStatusEnum : values()) { for (PlanStatusEnum jobStatusEnum : values()) {
if (jobStatusEnum.getCode() == status) { if (jobStatusEnum.getCode().equals(status)) {
return jobStatusEnum; return jobStatusEnum;
} }
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/plan/PlanStatusState.java

@ -21,7 +21,7 @@ public class PlanStatusState {
* 构造函数当前状态 * 构造函数当前状态
* @param status * @param status
*/ */
public PlanStatusState(int status) { public PlanStatusState(String status) {
this.orderStatusEnum = PlanStatusEnum.getJobStatusEnum(status); this.orderStatusEnum = PlanStatusEnum.getJobStatusEnum(status);
} }

28
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusEnum.java

@ -2,23 +2,23 @@ package com.win.module.wms.enums.request;
public enum RequestStatusEnum { public enum RequestStatusEnum {
NEW(1), // 新增 NEW("1"), // 新增
REVIEWING(2), // 审批中 REVIEWING("2"), // 审批中
AGREED(3), // 审批通过 AGREED("3"), // 审批通过
REFUSED(4), // 审批驳回 REFUSED("4"), // 审批驳回
CLOSED(5), // 关闭 CLOSED("5"), // 关闭
HANDLING(6), // 处理中 HANDLING("6"), // 处理中
PARTIAL(7), // 部分完成 PARTIAL("7"), // 部分完成
COMPLETED(8), // 已完成 COMPLETED("8"), // 已完成
ABORT(9), // 中止 ABORT("9"), // 中止
; ;
private final Integer code; private final String code;
RequestStatusEnum(int code) { RequestStatusEnum(String code) {
this.code = code; this.code = code;
} }
public int getCode() { public String getCode() {
return code; return code;
} }
@ -27,9 +27,9 @@ public enum RequestStatusEnum {
* @param status * @param status
* @return * @return
*/ */
static RequestStatusEnum getRequestStatusEnum(int status) { static RequestStatusEnum getRequestStatusEnum(String status) {
for (RequestStatusEnum jobStatusEnum : values()) { for (RequestStatusEnum jobStatusEnum : values()) {
if (jobStatusEnum.getCode() == status) { if (jobStatusEnum.getCode().equals(status)) {
return jobStatusEnum; return jobStatusEnum;
} }
} }

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusState.java

@ -23,7 +23,7 @@ public class RequestStatusState {
* 构造函数当前状态 * 构造函数当前状态
* @param status * @param status
*/ */
public RequestStatusState(int status) { public RequestStatusState(String status) {
this.requestStatusEnum = RequestStatusEnum.getRequestStatusEnum(status); this.requestStatusEnum = RequestStatusEnum.getRequestStatusEnum(status);
} }
@ -40,6 +40,7 @@ public class RequestStatusState {
* @return * @return
*/ */
public boolean newObject(RequestsettingDO requestsettingDO) { public boolean newObject(RequestsettingDO requestsettingDO) {
this.requestStatusEnum = RequestStatusEnum.NEW;
if("TRUE".equals(requestsettingDO.getAutoCommit())) { if("TRUE".equals(requestsettingDO.getAutoCommit())) {
this.requestStatusEnum = RequestStatusEnum.REVIEWING; this.requestStatusEnum = RequestStatusEnum.REVIEWING;
if("TRUE".equals(requestsettingDO.getAutoAgree())) { if("TRUE".equals(requestsettingDO.getAutoAgree())) {

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainService.java

@ -37,14 +37,14 @@ public interface PurchasereceiptRequestMainService {
* *
* @param updateReqVO 更新信息 * @param updateReqVO 更新信息
*/ */
void updatePurchasereceiptRequestMain(@Valid PurchasereceiptRequestMainUpdateReqVO updateReqVO); Integer updatePurchasereceiptRequestMain(@Valid PurchasereceiptRequestMainUpdateReqVO updateReqVO);
/** /**
* 删除采购收货申请主 * 删除采购收货申请主
* *
* @param id 编号 * @param id 编号
*/ */
void deletePurchasereceiptRequestMain(Long id); Integer deletePurchasereceiptRequestMain(Long id);
/** /**
* 获得采购收货申请主 * 获得采购收货申请主

264
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java

@ -1,28 +1,43 @@
package com.win.module.wms.service.purchasereceiptRequest; package com.win.module.wms.service.purchasereceiptRequest;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.framework.common.util.validation.ValidationUtils;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.purchasereceiptRequest.vo.*; import com.win.module.wms.controller.purchasereceiptRequest.vo.*;
import com.win.module.wms.controller.rule.vo.RuleRespVO;
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestDetailConvert; import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestDetailConvert;
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert; import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.mysql.purchasereceiptJob.PurchasereceiptJobMainMapper;
import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptRequestDetailMapper; import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptRequestDetailMapper;
import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptRequestMainMapper; import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptRequestMainMapper;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.enums.request.RequestStatusState;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.service.rule.RuleService;
import com.win.module.wms.service.supplier.SupplierService;
import com.win.module.wms.service.supplieritem.SupplieritemService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import javax.validation.Validator;
import java.util.Collection; import java.util.*;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; import static com.win.module.wms.enums.ErrorCodeConstants.*;
import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASERECEIPT_REQUEST_MAIN_NOT_EXISTS;
/** /**
* 采购收货申请主 Service 实现类 * 采购收货申请主 Service 实现类
@ -35,43 +50,95 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
@Resource @Resource
private PurchasereceiptRequestMainMapper purchasereceiptRequestMainMapper; private PurchasereceiptRequestMainMapper purchasereceiptRequestMainMapper;
@Resource @Resource
private PurchasereceiptRequestDetailMapper purchasereceiptRequestDetailMapper; private PurchasereceiptRequestDetailMapper purchasereceiptRequestDetailMapper;
@Resource
private ItembasicService itembasicService;
@Resource
private SupplierService supplierService;
@Resource
private SupplieritemService supplieritemService;
@Resource
private RuleService ruleService;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private Validator validator;
@Resource
private RequestsettingService requestsettingService;
@Resource
private PurchasereceiptJobMainMapper purchasereceiptJobMainMapper;
@Override @Override
public Long createPurchasereceiptRequestMain(PurchasereceiptRequestMainCreateReqVO createReqVO) { public Long createPurchasereceiptRequestMain(PurchasereceiptRequestMainCreateReqVO createReqVO) {
// 插入 // 插入
PurchasereceiptRequestMainDO purchasereceiptRequestMain = PurchasereceiptRequestMainConvert.INSTANCE.convert(createReqVO); PurchasereceiptRequestMainDO mainDo = PurchasereceiptRequestMainConvert.INSTANCE.convert(createReqVO);
purchasereceiptRequestMainMapper.insert(purchasereceiptRequestMain); this.validatePurchasereceiptRequestMainCreate(mainDo);
List<PurchasereceiptRequestDetailDO> subDOList = PurchasereceiptRequestDetailConvert.INSTANCE.convertList03(createReqVO.getSubList());
for (PurchasereceiptRequestDetailDO detailDO : subDOList) {
this.validatePurchasereceiptRequestDetailCreate(detailDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
mainDo.setNumber(number);
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest");
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(requestsettingDO);
mainDo.setStatus(requestStatusState.getState().getCode());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
//调用自动执行方法
if(requestsettingDO.getAutoCommit().equals("TRUE") && requestsettingDO.getAutoAgree().equals("TRUE") && requestsettingDO.getAutoExecute().equals("TREU")) {
}
purchasereceiptRequestMainMapper.insert(mainDo);
for (PurchasereceiptRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
}
purchasereceiptRequestDetailMapper.insertBatch(subDOList);
// 返回 // 返回
return purchasereceiptRequestMain.getId(); return mainDo.getId();
} }
@Override @Override
public void updatePurchasereceiptRequestMain(PurchasereceiptRequestMainUpdateReqVO updateReqVO) { public Integer updatePurchasereceiptRequestMain(PurchasereceiptRequestMainUpdateReqVO updateReqVO) {
// 校验存在 // 校验存在
validatePurchasereceiptRequestMainExists(updateReqVO.getId()); PurchasereceiptRequestMainDO existPurchasereceiptRequestMainDO = validatePurchasereceiptRequestMainExists(updateReqVO.getId());
if(existPurchasereceiptRequestMainDO.getStatus().equals(RequestStatusEnum.NEW.getCode())) {
throw new ServiceException(PURCHASERECEIPT_REQUEST_STATUS_NOT_NEW);
}
// 更新 // 更新
PurchasereceiptRequestMainDO updateObj = PurchasereceiptRequestMainConvert.INSTANCE.convert(updateReqVO); PurchasereceiptRequestMainDO updateObj = PurchasereceiptRequestMainConvert.INSTANCE.convert(updateReqVO);
purchasereceiptRequestMainMapper.updateById(updateObj); return purchasereceiptRequestMainMapper.updateById(updateObj);
} }
@Override @Override
public PageResult<PurchasereceiptRequestMainDO> getPurchasereceiptRequestMainSenior(CustomConditions conditions) { public PageResult<PurchasereceiptRequestMainDO> getPurchasereceiptRequestMainSenior(CustomConditions conditions) {
return purchasereceiptRequestMainMapper.selectSenior(conditions); return purchasereceiptRequestMainMapper.selectSenior(conditions);
} }
@Override @Override
public void deletePurchasereceiptRequestMain(Long id) { public Integer deletePurchasereceiptRequestMain(Long id) {
// 校验存在 // 校验存在
validatePurchasereceiptRequestMainExists(id); PurchasereceiptRequestMainDO existPurchasereceiptRequestMainDO = validatePurchasereceiptRequestMainExists(id);
// 删除 Long count = purchasereceiptJobMainMapper.selectByRequestNumber(existPurchasereceiptRequestMainDO.getNumber());
purchasereceiptRequestMainMapper.deleteById(id); if(count > 0) {
throw new ServiceException(PURCHASERECEIPT_REQUEST_JOB_EXISTS);
}
// 删除子表数据
Map<String, Object> map = new HashMap<>();
map.put("master_id", id);
//删除子表
purchasereceiptRequestDetailMapper.deleteByMap(map);
// 删除主表
return purchasereceiptRequestMainMapper.deleteById(id);
} }
private void validatePurchasereceiptRequestMainExists(Long id) { private PurchasereceiptRequestMainDO validatePurchasereceiptRequestMainExists(Long id) {
if (purchasereceiptRequestMainMapper.selectById(id) == null) { PurchasereceiptRequestMainDO existPurchasereceiptRequestMainDO = purchasereceiptRequestMainMapper.selectById(id);
if (existPurchasereceiptRequestMainDO == null) {
throw exception(PURCHASERECEIPT_REQUEST_MAIN_NOT_EXISTS); throw exception(PURCHASERECEIPT_REQUEST_MAIN_NOT_EXISTS);
} }
return existPurchasereceiptRequestMainDO;
} }
@Override @Override
@ -101,30 +168,151 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
} }
List<PurchasereceiptRequestMainImportErrorVO> errorList = new ArrayList<>(); List<PurchasereceiptRequestMainImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> { datas.forEach(createReqVO -> {
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList PurchasereceiptRequestMainDO mainDo = PurchasereceiptRequestMainConvert.INSTANCE.convert(createReqVO);
boolean isError = false; String messageMain = this.validatePurchasereceiptRequestMainImport(mainDo);
// try {
// if(mode != null){
// validatePurchaseclaimRequestMainExists(null);
// }
// } catch (ServiceException ex) {
// isError = true;
// importRemark += ex.getMessage() + ",";
// }
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
PurchasereceiptRequestMainDO createObj = PurchasereceiptRequestMainConvert.INSTANCE.convert(createReqVO);
purchasereceiptRequestMainMapper.insert(createObj);
List<PurchasereceiptRequestDetailCreateReqVO> subList = createReqVO.getSubList(); List<PurchasereceiptRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchasereceiptRequestDetailDO> subDOList = PurchasereceiptRequestDetailConvert.INSTANCE.convertList03(subList); List<PurchasereceiptRequestDetailDO> subDOList = PurchasereceiptRequestDetailConvert.INSTANCE.convertList03(subList);
// 新增子表数据 // 是否有错误数据
boolean flag = true;
for (PurchasereceiptRequestDetailDO detailDO : subDOList) { for (PurchasereceiptRequestDetailDO detailDO : subDOList) {
// 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList String messageDetail = this.validatePurchasereceiptRequestDetailImport(detailDO);
detailDO.setNumber(createReqVO.getNumber()); if(!messageMain.isEmpty() || messageDetail.isEmpty()) {
PurchasereceiptRequestMainImportErrorVO importErrorVO = PurchasereceiptRequestMainConvert.INSTANCE.convert(createReqVO, detailDO);
importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importErrorVO);
flag = false;
}
}
//写入数据
if(flag) {
PurchasereceiptRequestMainDO existPurchasereceiptRequestMainDO = purchasereceiptRequestMainMapper.selectBySupplierCode(mainDo.getSupplierCode());
if(existPurchasereceiptRequestMainDO == null && mode != 3) {//新增
purchasereceiptRequestMainMapper.insert(mainDo);
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
mainDo.setNumber(number);
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest");
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(requestsettingDO);
mainDo.setStatus(requestStatusState.getState().getCode());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
for (PurchasereceiptRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
}
//调用自动执行方法
if(requestsettingDO.getAutoCommit().equals("TRUE") && requestsettingDO.getAutoAgree().equals("TRUE") && requestsettingDO.getAutoExecute().equals("TREU")) {
}
purchasereceiptRequestDetailMapper.insertBatch(subDOList);
} else if(existPurchasereceiptRequestMainDO != null && existPurchasereceiptRequestMainDO.getStatus().equals(RequestStatusEnum.NEW.getCode()) && mode != 2) {//修改
BeanUtils.copyProperties(existPurchasereceiptRequestMainDO, mainDo);
purchasereceiptRequestMainMapper.updateById(mainDo);
for (PurchasereceiptRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(mainDo.getNumber());
purchasereceiptRequestDetailMapper.insertBatch(subDOList);
}
}
} }
purchasereceiptRequestDetailMapper.insertBatch(subDOList);
}); });
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList; return errorList;
} }
/**
* 校验导入并赋值一些参数未完全实现
* @param mainDo
* @return
*/
private void validatePurchasereceiptRequestMainCreate(PurchasereceiptRequestMainDO mainDo) {
supplierService.selectSupplier(mainDo.getSupplierCode());
RuleRespVO ruleRespVO = ruleService.deliverGoods(null, mainDo.getSupplierCode(), null);
if(ruleRespVO == null) {
throw new ServiceException(STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS);
} else {
JSONArray conditionArray = JSONUtil.parseArray(ruleRespVO.getConfiguration());
for (int i = 0; i < conditionArray.size(); i++) {
JSONObject conditionObject = conditionArray.getJSONObject(i);
if ("WarehouseCode".equals(conditionObject.get("ParamCode"))) {
mainDo.setFromWarehouseCode(String.valueOf(conditionObject.get("Value")));
}
if ("DockCode".equals(conditionObject.get("ParamCode"))) {
mainDo.setToDockCode(String.valueOf(conditionObject.get("Value")));
}
if ("OnTheWayLocationCode".equals(conditionObject.get("ParamCode"))) {
mainDo.setToWarehouseCode(String.valueOf(conditionObject.get("Value")));
}
}
}
}
/**
* 校验导入并赋值一些参数未完全实现
* @param mainDo
* @return
*/
private String validatePurchasereceiptRequestMainImport(PurchasereceiptRequestMainDO mainDo) {
StringBuilder message = new StringBuilder();
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
supplierService.selectSupplier(mainDo.getSupplierCode());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
RuleRespVO ruleRespVO = ruleService.deliverGoods(null, mainDo.getSupplierCode(), null);
if(ruleRespVO == null) {
message.append(STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS.getMsg());
} else {
JSONArray conditionArray = JSONUtil.parseArray(ruleRespVO.getConfiguration());
for (int i = 0; i < conditionArray.size(); i++) {
JSONObject conditionObject = conditionArray.getJSONObject(i);
if ("WarehouseCode".equals(conditionObject.get("ParamCode"))) {
mainDo.setFromWarehouseCode(String.valueOf(conditionObject.get("Value")));
}
if ("DockCode".equals(conditionObject.get("ParamCode"))) {
mainDo.setToDockCode(String.valueOf(conditionObject.get("Value")));
}
if ("OnTheWayLocationCode".equals(conditionObject.get("ParamCode"))) {
mainDo.setToWarehouseCode(String.valueOf(conditionObject.get("Value")));
}
}
}
return message.toString();
}
/**
* 校验导入并赋值一些参数未完全实现
* @param detailDo
* @return
*/
private void validatePurchasereceiptRequestDetailCreate(PurchasereceiptRequestDetailDO detailDo) {
}
/**
* 校验导入并赋值一些参数未完全实现
* @param detailDo
* @return
*/
private String validatePurchasereceiptRequestDetailImport(PurchasereceiptRequestDetailDO detailDo) {
StringBuilder message = new StringBuilder();
try {
ValidationUtils.validate(validator, detailDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleServiceImpl.java

@ -581,7 +581,7 @@ public class RuleServiceImpl implements RuleService {
*/ */
private boolean forEachParams(Map<String, String> params, JSONArray conditionArray) { private boolean forEachParams(Map<String, String> params, JSONArray conditionArray) {
for(int i = 0; i < conditionArray.size(); i++) { for(int i = 0; i < conditionArray.size(); i++) {
JSONObject conditionObject = conditionArray.getJSONObject(0); JSONObject conditionObject = conditionArray.getJSONObject(i);
for (String key : params.keySet()) { for (String key : params.keySet()) {
if(key.equals(conditionObject.get("ParamCode"))) { if(key.equals(conditionObject.get("ParamCode"))) {
boolean result = this.checkCondition(conditionObject, key, params.get(key)); boolean result = this.checkCondition(conditionObject, key, params.get(key));

Loading…
Cancel
Save