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
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
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
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
ErrorCode PURCHASERECEIPT_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_073_000, "采购收货任务主不存在");
//采购收货任务子ErrorCode
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
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
ErrorCode PURCHASERECEIPT_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_074_001, "采购收货记录子不存在");
//采购退货申请主ErrorCode
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;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
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;
@ -35,49 +29,42 @@ public class PurchasereceiptRequestDetailBaseVO {
private String containerNumber;
@Schema(description = "批次", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "批次不能为空")
@NotBlank(message = "批次不能为空")
private String batch;
@Schema(description = "替代批次")
private String altBatch;
@Schema(description = "到货日期", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "到货日期不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime arriveDate;
@Schema(description = "生产日期", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "生产日期不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime produceDate;
@Schema(description = "过期日期", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "过期日期不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime expireDate;
@Schema(description = "库存状态", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "库存状态不能为空")
private String inventoryStatus;
@Schema(description = "从库位代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从库位代码不能为空")
private String fromLocationCode;
@Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "订单号不能为空")
@NotBlank(message = "订单号不能为空")
private String poNumber;
@Schema(description = "订单行", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "订单行不能为空")
@NotBlank(message = "订单行不能为空")
private String poLine;
@Schema(description = "标包数量", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "标包数量不能为空")
private BigDecimal stdPackQty;
@Schema(description = "标包单位", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "标包单位不能为空")
private String stdPackUnit;
@Schema(description = "供应商计量数量")
@ -87,14 +74,13 @@ public class PurchasereceiptRequestDetailBaseVO {
private String supplierPackUnit;
@Schema(description = "转换率", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "转换率不能为空")
private BigDecimal convertRate;
@Schema(description = "单据号")
private String number;
@Schema(description = "物品代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "物品代码不能为空")
@NotBlank(message = "物品代码不能为空")
private String itemCode;
@Schema(description = "备注")
@ -113,9 +99,11 @@ public class PurchasereceiptRequestDetailBaseVO {
private String projectCode;
@Schema(description = "数量")
@NotBlank(message = "数量不能为空")
private BigDecimal qty;
@Schema(description = "计量单位")
@NotBlank(message = "计量单位不能为空")
private String uom;
@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;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
import lombok.Data;
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;
/**
@ -22,15 +20,15 @@ public class PurchasereceiptRequestMainBaseVO {
@Schema(description = "id", example = "id")
private Long id;
@Schema(description = "发货单号")
private String asnNumber;
@Schema(description = "要货计划单号")
private String ppNumber;
@OnlyOne
@Schema(description = "供应商代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "供应商代码不能为空")
@NotBlank(message = "供应商代码不能为空")
private String supplierCode;
@Schema(description = "承运商")
@ -40,11 +38,9 @@ public class PurchasereceiptRequestMainBaseVO {
private String transferMode;
@Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从仓库代码不能为空")
private String fromWarehouseCode;
@Schema(description = "到仓库代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "到仓库代码不能为空")
private String toWarehouseCode;
@Schema(description = "从库位类型范围")
@ -63,11 +59,9 @@ public class PurchasereceiptRequestMainBaseVO {
private String toDockCode;
@Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "单据号不能为空")
private String number;
@Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "业务类型不能为空")
private String businessType;
@Schema(description = "备注")
@ -89,7 +83,6 @@ public class PurchasereceiptRequestMainBaseVO {
private LocalDateTime dueTime;
@Schema(description = "部门", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "部门不能为空")
private String departmentCode;
@Schema(description = "最后更新时间")
@ -103,19 +96,15 @@ public class PurchasereceiptRequestMainBaseVO {
private String status;
@Schema(description = "自动提交", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "自动提交不能为空")
private String autoCommit;
@Schema(description = "自动通过", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "自动通过不能为空")
private String autoAgree;
@Schema(description = "自动执行", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "自动执行不能为空")
private String autoExecute;
@Schema(description = "直接生成记录", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "直接生成记录不能为空")
private String directCreateRecord;
@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.ToString;
import javax.validation.Valid;
import java.util.List;
@Schema(description = "管理后台 - 采购收货申请主创建 Request VO")
@ -16,5 +17,5 @@ public class PurchasereceiptRequestMainCreateReqVO extends PurchasereceiptReques
@SubObject
@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;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@ -24,41 +24,48 @@ public class PurchasereceiptRequestMainImportVO {
//主表数据
@ExcelProperty("供应商代码")
private String supplier_code;
private String supplierCode;
@NotBlank(message="订单号不能为空")
@ExcelProperty("订单号")
private String po_number;
private String poNumber;
@NotBlank(message="订单行不能为空")
@ExcelProperty("订单行")
private String po_line;
private String poLine;
@NotBlank(message="物品代码不能为空")
@ExcelProperty("物品代码")
private String item_code;
private String itemCode;
@NotBlank(message="批次不能为空")
@ExcelProperty("批次")
private String batch;
@NotBlank(message="数量不能为空")
@ExcelProperty("数量")
@ColumnWidth(value = 16)
private String qty;
@NotBlank(message="计量单位不能为空")
@ExcelProperty("计量单位")
@ColumnWidth(value = 16)
private String uom;
@ExcelProperty("到货日期")
private String isConsignment;
private LocalDateTime arriveDate;
@ExcelProperty("生产日期")
private LocalDateTime dueDate;
private LocalDateTime produceDate;
//子表数据
@ExcelProperty("过期日期")
private String itemCode;
private LocalDateTime expireDate;
@ExcelProperty("承运商")
private String orderQty;
private String carrierCode;
@ExcelProperty("运输方式")
private String aa;
private String transferMode;
@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;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExcelVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainRespVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainUpdateReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.*;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import java.util.List;
/**
* 采购收货申请主 Convert
@ -34,4 +31,6 @@ public interface PurchasereceiptRequestMainConvert {
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;
import java.util.*;
import com.win.framework.common.pojo.CustomConditions;
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.query.LambdaQueryWrapperX;
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.enums.order.OrderStatusEnum;
import org.apache.ibatis.annotations.Mapper;
import com.win.module.wms.controller.purchasereceiptJob.vo.*;
import java.util.List;
/**
* 采购收货任务主 Mapper
@ -71,6 +74,13 @@ public interface PurchasereceiptJobMainMapper extends BaseMapperX<Purchasereceip
default PageResult<PurchasereceiptJobMainDO> selectSenior(CustomConditions 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) {
return selectList(new LambdaQueryWrapperX<PurchasereceiptJobMainDO>()
.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;
import java.util.*;
import com.win.framework.common.pojo.CustomConditions;
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.query.LambdaQueryWrapperX;
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.PurchasereceiptRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 采购收货申请主 Mapper
*
@ -55,6 +55,11 @@ public interface PurchasereceiptRequestMainMapper extends BaseMapperX<Purchasere
default PageResult<PurchasereceiptRequestMainDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions));
}
default PurchasereceiptRequestMainDO selectBySupplierCode(String supplierCode) {
return selectOne(PurchasereceiptRequestMainDO::getSupplierCode,supplierCode);
}
default List<PurchasereceiptRequestMainDO> selectList(PurchasereceiptRequestMainExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<PurchasereceiptRequestMainDO>()
.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;
public enum JobStatusEnum {
PENDING(1), // 待处理
PROCESSING(2), // 进行中
COMPLETED(3), // 完成
CLOSED(4), // 关闭
PENDING("1"), // 待处理
PROCESSING("2"), // 进行中
COMPLETED("3"), // 完成
CLOSED("4"), // 关闭
;
private final Integer code;
private final String code;
JobStatusEnum(int code) {
JobStatusEnum(String code) {
this.code = code;
}
public int getCode() {
public String getCode() {
return code;
}
@ -22,9 +22,9 @@ public enum JobStatusEnum {
* @param status
* @return
*/
static JobStatusEnum getJobStatusEnum(int status) {
static JobStatusEnum getJobStatusEnum(String status) {
for (JobStatusEnum jobStatusEnum : values()) {
if (jobStatusEnum.getCode() == status) {
if (jobStatusEnum.getCode().equals(status)) {
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
*/
public JobStatusState(int status) {
public JobStatusState(String 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 {
READY(1), // 准备
PUBLISHED(2), // 发布
CLOSED(3), // 关闭
COMPLETED(4), // 已完成
READY("1"), // 准备
PUBLISHED("2"), // 发布
CLOSED("3"), // 关闭
COMPLETED("4"), // 已完成
;
private final Integer code;
private String code;
OrderStatusEnum(int code) {
OrderStatusEnum(String code) {
this.code = code;
}
public int getCode() {
public String getCode() {
return code;
}
@ -22,9 +22,9 @@ public enum OrderStatusEnum {
* @param status
* @return
*/
static OrderStatusEnum getJobStatusEnum(int status) {
static OrderStatusEnum getJobStatusEnum(String status) {
for (OrderStatusEnum jobStatusEnum : values()) {
if (jobStatusEnum.getCode() == status) {
if (jobStatusEnum.getCode().equals(status)) {
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
*/
public OrderStatusState(int status) {
public OrderStatusState(String 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 {
NEW(1), // 新增
REVIEWING(2), // 审批中
AGREED(3), // 审批通过
REFUSED(4), // 审批驳回
CLOSED(5), // 关闭
PUBLISHED(6), // 发布
COMPLETED(7), // 已完成
NEW("1"), // 新增
REVIEWING("2"), // 审批中
AGREED("3"), // 审批通过
REFUSED("4"), // 审批驳回
CLOSED("5"), // 关闭
PUBLISHED("6"), // 发布
COMPLETED("7"), // 已完成
;
private final Integer code;
private final String code;
PlanStatusEnum(int code) {
PlanStatusEnum(String code) {
this.code = code;
}
public int getCode() {
public String getCode() {
return code;
}
@ -25,9 +25,9 @@ public enum PlanStatusEnum {
* @param status
* @return
*/
static PlanStatusEnum getJobStatusEnum(int status) {
static PlanStatusEnum getJobStatusEnum(String status) {
for (PlanStatusEnum jobStatusEnum : values()) {
if (jobStatusEnum.getCode() == status) {
if (jobStatusEnum.getCode().equals(status)) {
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
*/
public PlanStatusState(int status) {
public PlanStatusState(String 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 {
NEW(1), // 新增
REVIEWING(2), // 审批中
AGREED(3), // 审批通过
REFUSED(4), // 审批驳回
CLOSED(5), // 关闭
HANDLING(6), // 处理中
PARTIAL(7), // 部分完成
COMPLETED(8), // 已完成
ABORT(9), // 中止
NEW("1"), // 新增
REVIEWING("2"), // 审批中
AGREED("3"), // 审批通过
REFUSED("4"), // 审批驳回
CLOSED("5"), // 关闭
HANDLING("6"), // 处理中
PARTIAL("7"), // 部分完成
COMPLETED("8"), // 已完成
ABORT("9"), // 中止
;
private final Integer code;
private final String code;
RequestStatusEnum(int code) {
RequestStatusEnum(String code) {
this.code = code;
}
public int getCode() {
public String getCode() {
return code;
}
@ -27,9 +27,9 @@ public enum RequestStatusEnum {
* @param status
* @return
*/
static RequestStatusEnum getRequestStatusEnum(int status) {
static RequestStatusEnum getRequestStatusEnum(String status) {
for (RequestStatusEnum jobStatusEnum : values()) {
if (jobStatusEnum.getCode() == status) {
if (jobStatusEnum.getCode().equals(status)) {
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
*/
public RequestStatusState(int status) {
public RequestStatusState(String status) {
this.requestStatusEnum = RequestStatusEnum.getRequestStatusEnum(status);
}
@ -40,6 +40,7 @@ public class RequestStatusState {
* @return
*/
public boolean newObject(RequestsettingDO requestsettingDO) {
this.requestStatusEnum = RequestStatusEnum.NEW;
if("TRUE".equals(requestsettingDO.getAutoCommit())) {
this.requestStatusEnum = RequestStatusEnum.REVIEWING;
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 更新信息
*/
void updatePurchasereceiptRequestMain(@Valid PurchasereceiptRequestMainUpdateReqVO updateReqVO);
Integer updatePurchasereceiptRequestMain(@Valid PurchasereceiptRequestMainUpdateReqVO updateReqVO);
/**
* 删除采购收货申请主
*
* @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;
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.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.rule.vo.RuleRespVO;
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestDetailConvert;
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.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.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.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.validation.Validator;
import java.util.*;
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.PURCHASERECEIPT_REQUEST_MAIN_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 采购收货申请主 Service 实现类
@ -35,43 +50,95 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
@Resource
private PurchasereceiptRequestMainMapper purchasereceiptRequestMainMapper;
@Resource
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
public Long createPurchasereceiptRequestMain(PurchasereceiptRequestMainCreateReqVO createReqVO) {
// 插入
PurchasereceiptRequestMainDO purchasereceiptRequestMain = PurchasereceiptRequestMainConvert.INSTANCE.convert(createReqVO);
purchasereceiptRequestMainMapper.insert(purchasereceiptRequestMain);
PurchasereceiptRequestMainDO mainDo = PurchasereceiptRequestMainConvert.INSTANCE.convert(createReqVO);
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
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);
purchasereceiptRequestMainMapper.updateById(updateObj);
return purchasereceiptRequestMainMapper.updateById(updateObj);
}
@Override
public PageResult<PurchasereceiptRequestMainDO> getPurchasereceiptRequestMainSenior(CustomConditions conditions) {
return purchasereceiptRequestMainMapper.selectSenior(conditions);
}
@Override
public void deletePurchasereceiptRequestMain(Long id) {
public Integer deletePurchasereceiptRequestMain(Long id) {
// 校验存在
validatePurchasereceiptRequestMainExists(id);
// 删除
purchasereceiptRequestMainMapper.deleteById(id);
PurchasereceiptRequestMainDO existPurchasereceiptRequestMainDO = validatePurchasereceiptRequestMainExists(id);
Long count = purchasereceiptJobMainMapper.selectByRequestNumber(existPurchasereceiptRequestMainDO.getNumber());
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) {
if (purchasereceiptRequestMainMapper.selectById(id) == null) {
private PurchasereceiptRequestMainDO validatePurchasereceiptRequestMainExists(Long id) {
PurchasereceiptRequestMainDO existPurchasereceiptRequestMainDO = purchasereceiptRequestMainMapper.selectById(id);
if (existPurchasereceiptRequestMainDO == null) {
throw exception(PURCHASERECEIPT_REQUEST_MAIN_NOT_EXISTS);
}
return existPurchasereceiptRequestMainDO;
}
@Override
@ -101,30 +168,151 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
}
List<PurchasereceiptRequestMainImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
boolean isError = false;
// 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);
PurchasereceiptRequestMainDO mainDo = PurchasereceiptRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = this.validatePurchasereceiptRequestMainImport(mainDo);
List<PurchasereceiptRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<PurchasereceiptRequestDetailDO> subDOList = PurchasereceiptRequestDetailConvert.INSTANCE.convertList03(subList);
// 新增子表数据
// 是否有错误数据
boolean flag = true;
for (PurchasereceiptRequestDetailDO detailDO : subDOList) {
// 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList
detailDO.setNumber(createReqVO.getNumber());
String messageDetail = this.validatePurchasereceiptRequestDetailImport(detailDO);
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;
}
/**
* 校验导入并赋值一些参数未完全实现
* @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) {
for(int i = 0; i < conditionArray.size(); i++) {
JSONObject conditionObject = conditionArray.getJSONObject(0);
JSONObject conditionObject = conditionArray.getJSONObject(i);
for (String key : params.keySet()) {
if(key.equals(conditionObject.get("ParamCode"))) {
boolean result = this.checkCondition(conditionObject, key, params.get(key));

Loading…
Cancel
Save