Browse Source

调拨入库开发调试完成

master
赵雪冰 2 years ago
parent
commit
6e8227f0af
  1. 1
      win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java
  2. 13
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  3. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueJob/vo/TransferissueJobDetailPageReqVO.java
  4. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordDetailExportReqVO.java
  5. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordDetailPageReqVO.java
  6. 42
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/TransferreceiptJobMainController.java
  7. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/vo/TransferreceiptJobDetailUpdateReqVO.java
  8. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/vo/TransferreceiptJobMainUpdateReqVO.java
  9. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/vo/TransferreceiptRecordDetailBaseVO.java
  10. 54
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/TransferreceiptRequestMainController.java
  11. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestDetailBaseVO.java
  12. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestMainCreateReqVO.java
  13. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestMainUpdateReqVO.java
  14. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptJob/TransferreceiptJobDetailConvert.java
  15. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptJob/TransferreceiptJobMainConvert.java
  16. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptRequest/TransferreceiptRequestDetailConvert.java
  17. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptRequest/TransferreceiptRequestMainConvert.java
  18. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transferissueRequest/TransferissueRequestMainDO.java
  19. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transferreceiptJob/TransferreceiptJobMainDO.java
  20. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transferreceiptRequest/TransferreceiptRequestDetailDO.java
  21. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferissueJob/TransferissueJobDetailMapper.java
  22. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferissueJob/TransferissueJobMainMapper.java
  23. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferissueRecord/TransferissueRecordDetailMapper.java
  24. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptJob/TransferreceiptJobDetailMapper.java
  25. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptJob/TransferreceiptJobMainMapper.java
  26. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptRequest/TransferreceiptRequestDetailMapper.java
  27. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptRequest/TransferreceiptRequestMainMapper.java
  28. 38
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueJob/TransferissueJobMainServiceImpl.java
  29. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java
  30. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobDetailService.java
  31. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobDetailServiceImpl.java
  32. 35
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobMainService.java
  33. 244
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobMainServiceImpl.java
  34. 41
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestMainService.java
  35. 479
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestMainServiceImpl.java

1
win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java

@ -142,6 +142,7 @@ public enum RuleCodeEnum {
PACKING_NUMBER("PackingNumber"), // 包装号
CUSTOMER_DELIVER_NUMBER("CustomerDeliverNumber"), // 客户发货单号
LABEL_NUMBER("LabelNumber"), // 标签流水号
TRANSFER_RECEIPT_REQUEST("TransferReceiptRequest"),// 调拨接收申请
;

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

@ -868,16 +868,29 @@ public interface ErrorCodeConstants {
//调拨出库记录ErrorCode
ErrorCode TRANSFERISSUE_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_139_000, "调拨出库记录主不存在");
ErrorCode TRANSFERISSUE_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_139_001, "调拨出库记录子不存在");
//调拨入库申请ErrorCode
ErrorCode TRANSFERRECEIPT_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_140_000, "调拨入库申请主不存在");
ErrorCode TRANSFERRECEIPT_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_140_001, "调拨入库申请子不存在");
ErrorCode TRANSFERRECEIPT_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS = new ErrorCode(1_000_140_002, "库位【{}】无效");
ErrorCode TRANSFERRECEIPT_REQUEST_DETAIL_ITEM_NOT_EXISTS = new ErrorCode(1_000_140_003, "物品【{}】无效");
ErrorCode TRANSFERRECEIPT_REQUEST_CANNOT_RE_ADD = new ErrorCode(1_000_140_004, "调拨入库申请状态不支持关闭");
ErrorCode TRANSFERRECEIPT_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_140_005, "调拨入库申请状态不支持关闭");
ErrorCode TRANSFERRECEIPT_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_140_006, "调拨入库申请状态不支持提交");
ErrorCode TRANSFERRECEIPT_REQUEST_CANNOT_ABORT = new ErrorCode(1_000_140_007, "调拨入库申请状态不支持审批拒绝");
ErrorCode TRANSFERRECEIPT_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_140_008, "调拨入库申请状态不支持审批同意");
ErrorCode TRANSFERRECEIPT_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_140_009, "调拨入库申请状态不支持处理");
//调拨入库任务ErrorCode
ErrorCode TRANSFERRECEIPT_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_141_000, "调拨入库任务主不存在");
ErrorCode TRANSFERRECEIPT_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_141_001, "调拨入库任务子不存在");
ErrorCode TRANSFERRECEIPT_JOB_MAIN_STATUS_ERROR = new ErrorCode(1_000_141_002, "调拨入库任务状态错误");
ErrorCode TRANSFERRECEIPT_JOB_MAIN_EXISTS = new ErrorCode(1_000_141_003, "调拨入库任务存在调拨入库任务单");
//调拨入库记录ErrorCode
ErrorCode TRANSFERRECEIPT_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_142_000, "调拨入库记录主不存在");
ErrorCode TRANSFERRECEIPT_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_142_001, "调拨入库记录子不存在");
//计划外出库申请ErrorCode
ErrorCode UNPLANNEDISSUE_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_143_000, "计划外出库申请主不存在");
ErrorCode UNPLANNEDISSUE_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_143_001, "计划外出库申请子不存在");

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueJob/vo/TransferissueJobDetailPageReqVO.java

@ -75,4 +75,6 @@ public class TransferissueJobDetailPageReqVO extends PageParam {
@Schema(description = "到货主代码")
private String toOwnerCode;
@Schema(description = "主键ID")
private String masterId;
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordDetailExportReqVO.java

@ -103,4 +103,7 @@ public class TransferissueRecordDetailExportReqVO {
@Schema(description = "到批次")
private String toBatch;
@Schema(description = "主键Id")
private String masterId;
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordDetailPageReqVO.java

@ -105,4 +105,7 @@ public class TransferissueRecordDetailPageReqVO extends PageParam {
@Schema(description = "到批次")
private String toBatch;
@Schema(description = "主键ID")
private String masterId;
}

42
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/TransferreceiptJobMainController.java

@ -3,6 +3,7 @@ package com.win.module.wms.controller.transferreceiptJob;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.transferissueJob.vo.TransferissueJobMainUpdateReqVO;
import com.win.module.wms.controller.transferreceiptJob.vo.*;
import com.win.module.wms.convert.transferreceiptJob.TransferreceiptJobDetailConvert;
import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobDetailDO;
@ -158,4 +159,45 @@ public class TransferreceiptJobMainController {
return success(countByStatus);
}
@PutMapping(value = "/accept")
@Operation(summary = "承接任务")
@PreAuthorize("@ss.hasPermission('wms:transferreceipt-job-main:accept')")
public CommonResult<Boolean> acceptTransferreceiptJobMain(@RequestParam("id") Long id) {
int result = transferreceiptJobMainService.acceptTransferreceiptJobMain(id);
return success(result > 0);
}
@PutMapping(value = "/abandon")
@Operation(summary = "放弃任务")
@PreAuthorize("@ss.hasPermission('wms:transferreceipt-job-main:abandon')")
public CommonResult<Boolean> abandonTransferreceiptJobMain(@RequestParam("id") Long id) {
int result = transferreceiptJobMainService.abandonTransferreceiptJobMain(id);
return success(result > 0);
}
@PutMapping(value = "/close")
@Operation(summary = "关闭任务")
@PreAuthorize("@ss.hasPermission('wms:transferreceipt-job-main:close')")
public CommonResult<Boolean> closeTransferreceiptJobMain(@RequestParam("id") Long id) {
int result = transferreceiptJobMainService.closeTransferreceiptJobMain(id);
return success(result > 0);
}
@PutMapping("/execute")
@Operation(summary = "执行调拨出库任务主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:transferreceipt-job-main:execute')")
public CommonResult<String> executeTransferreceiptJobMain(@Valid @RequestBody TransferreceiptJobMainUpdateReqVO updateReqVO) {
String number = transferreceiptJobMainService.executeTransferreceiptJobMain(updateReqVO);
return success(number);
}
@PutMapping("/getExecuteJson")
@Operation(summary = "获取执行请求参数")
@Parameter(name = "id", description = "编号", required = true)
public CommonResult<TransferreceiptJobMainUpdateReqVO> getExecuteJson(@RequestParam("id") Long id) {
TransferreceiptJobMainUpdateReqVO updateReqVO = transferreceiptJobMainService.getExecuteJson(id);
return success(updateReqVO);
}
}

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/vo/TransferreceiptJobDetailUpdateReqVO.java

@ -9,4 +9,18 @@ import lombok.*;
@ToString(callSuper = true)
public class TransferreceiptJobDetailUpdateReqVO extends TransferreceiptJobDetailBaseVO {
@Schema(description = "实际收货数量")
private String toQty;
@Schema(description = "到包装")
private String toPackingNumber;
@Schema(description = "到包装")
private String toContainerNumber;
@Schema(description = "到批次")
private String toBatch;
@Schema(description = "到库存状态")
private String toInventoryStatus;
}

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/vo/TransferreceiptJobMainUpdateReqVO.java

@ -1,12 +1,18 @@
package com.win.module.wms.controller.transferreceiptJob.vo;
import com.win.module.wms.controller.transferissueJob.vo.TransferissueJobDetailUpdateReqVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import javax.validation.Valid;
import java.util.List;
@Schema(description = "管理后台 - 调拨入库任务主更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class TransferreceiptJobMainUpdateReqVO extends TransferreceiptJobMainBaseVO {
@Schema(description = "子表数据")
private List<@Valid TransferreceiptJobDetailUpdateReqVO> subList;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/vo/TransferreceiptRecordDetailBaseVO.java

@ -114,4 +114,6 @@ public class TransferreceiptRecordDetailBaseVO {
@Schema(description = "到批次")
private String toBatch;
@Schema(description = "主表ID")
private String masterId;
}

54
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/TransferreceiptRequestMainController.java

@ -119,4 +119,58 @@ public class TransferreceiptRequestMainController {
ExcelUtils.write(response, "调拨入库申请主.xls", "数据", TransferreceiptRequestMainExcelVO.class, datas);
}
@PutMapping("/close")
@Operation(summary = "关闭调拨入库申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:transferreceipt-request-main:close')")
public CommonResult<Boolean> closeTransferreceiptRequestMain(@RequestParam("id") Long id) {
Integer count = transferreceiptRequestMainService.closeTransferreceiptRequestMain(id);
return success(count > 0);
}
@PutMapping("/reAdd")
@Operation(summary = "重新添加调拨入库申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:transferreceipt-request-main:reAdd')")
public CommonResult<Boolean> reAddTransferreceiptRequestMain(@RequestParam("id") Long id) {
Integer count = transferreceiptRequestMainService.reAddTransferreceiptRequestMain(id);
return success(count > 0);
}
@PutMapping("/submit")
@Operation(summary = "提交调拨入库申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:transferreceipt-request-main:submit')")
public CommonResult<Boolean> submitTransferreceiptRequestMain(@RequestParam("id") Long id) {
Integer count = transferreceiptRequestMainService.submitTransferreceiptRequestMain(id);
return success(count > 0);
}
@PutMapping("/refused")
@Operation(summary = "审批拒绝调拨入库申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:transferreceipt-request-main:refused')")
public CommonResult<Boolean> abortTransferreceiptRequestMain(@RequestParam("id") Long id) {
Integer count = transferreceiptRequestMainService.abortTransferreceiptRequestMain(id);
return success(count > 0);
}
@PutMapping("/agree")
@Operation(summary = "审批通过调拨入库申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:transferreceipt-request-main:agree')")
public CommonResult<Boolean> agreeTransferreceiptRequestMain(@RequestParam("id") Long id) {
Integer count = transferreceiptRequestMainService.agreeTransferreceiptRequestMain(id);
return success(count > 0);
}
@PutMapping("/handle")
@Operation(summary = "处理调拨入库申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:transferreceipt-request-main:handle')")
public CommonResult<Boolean> handleTransferreceiptRequestMain(@RequestParam("id") Long id) {
Integer count = transferreceiptRequestMainService.handleTransferreceiptRequestMain(id);
return success(count > 0);
}
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestDetailBaseVO.java

@ -87,4 +87,7 @@ public class TransferreceiptRequestDetailBaseVO {
@Schema(description = "到货主代码")
private String toOwnerCode;
@Schema(description = "到库位代码")
private String toLocationCode;
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestMainCreateReqVO.java

@ -1,12 +1,19 @@
package com.win.module.wms.controller.transferreceiptRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailCreateReqVO;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
@Schema(description = "管理后台 - 调拨入库申请主创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class TransferreceiptRequestMainCreateReqVO extends TransferreceiptRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<TransferreceiptRequestDetailCreateReqVO> subList;
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestMainUpdateReqVO.java

@ -1,12 +1,20 @@
package com.win.module.wms.controller.transferreceiptRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailUpdateReqVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.List;
@Schema(description = "管理后台 - 调拨入库申请主更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class TransferreceiptRequestMainUpdateReqVO extends TransferreceiptRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<TransferreceiptRequestDetailUpdateReqVO> subList;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptJob/TransferreceiptJobDetailConvert.java

@ -8,6 +8,7 @@ import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDet
import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailExcelVO;
import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailRespVO;
import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.transferreceiptRequest.TransferreceiptRequestDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobDetailDO;
@ -34,4 +35,5 @@ public interface TransferreceiptJobDetailConvert {
List<TransferreceiptJobDetailExcelVO> convertList02(List<TransferreceiptJobDetailDO> list);
TransferreceiptJobDetailDO convert(TransferreceiptRequestDetailDO transferreceiptRequestDetailDO);
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptJob/TransferreceiptJobMainConvert.java

@ -8,6 +8,7 @@ import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMai
import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMainExcelVO;
import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMainRespVO;
import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.transferreceiptRequest.TransferreceiptRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobMainDO;
@ -34,4 +35,5 @@ public interface TransferreceiptJobMainConvert {
List<TransferreceiptJobMainExcelVO> convertList02(List<TransferreceiptJobMainDO> list);
TransferreceiptJobMainDO convert(TransferreceiptRequestMainDO mainDO);
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptRequest/TransferreceiptRequestDetailConvert.java

@ -34,4 +34,7 @@ public interface TransferreceiptRequestDetailConvert {
List<TransferreceiptRequestDetailExcelVO> convertList02(List<TransferreceiptRequestDetailDO> list);
List<TransferreceiptRequestDetailDO> convertList03(List<TransferreceiptRequestDetailCreateReqVO> subList);
List<TransferreceiptRequestDetailDO> convertList05(List<TransferreceiptRequestDetailUpdateReqVO> subList);
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptRequest/TransferreceiptRequestMainConvert.java

@ -4,10 +4,8 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainCreateReqVO;
import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainExcelVO;
import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainRespVO;
import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainUpdateReqVO;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainBaseVO;
import com.win.module.wms.controller.transferreceiptRequest.vo.*;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.transferreceiptRequest.TransferreceiptRequestMainDO;
@ -34,4 +32,5 @@ public interface TransferreceiptRequestMainConvert {
List<TransferreceiptRequestMainExcelVO> convertList02(List<TransferreceiptRequestMainDO> list);
TransferreceiptRequestMainDO convert(TransferreceiptRequestMainBaseVO baseVO);
}

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transferissueRequest/TransferissueRequestMainDO.java

@ -146,5 +146,14 @@ public class TransferissueRequestMainDO extends BaseDO {
* 直接生成记录
*/
private String directCreateRecord;
/**
* 入库库存状态范围
*/
private String inInventoryStatuses;
/**
* 出库库存状态范围
*/
private String outInventoryStatuses;
}

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transferreceiptJob/TransferreceiptJobMainDO.java

@ -223,5 +223,14 @@ public class TransferreceiptJobMainDO extends BaseDO {
* 允许修改箱码
*/
private String allowModifyPackingNumber;
/**
* 入库库存状态范围
*/
private String inInventoryStatuses;
/**
* 出库库存状态范围
*/
private String outInventoryStatuses;
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transferreceiptRequest/TransferreceiptRequestDetailDO.java

@ -107,5 +107,9 @@ public class TransferreceiptRequestDetailDO extends BaseDO {
* 到货主代码
*/
private String toOwnerCode;
/**
* 到库位代码
*/
private String toLocationCode;
}

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferissueJob/TransferissueJobDetailMapper.java

@ -42,6 +42,7 @@ public interface TransferissueJobDetailMapper extends BaseMapperX<TransferissueJ
.eqIfPresent(TransferissueJobDetailDO::getCreator, reqVO.getCreator())
.eqIfPresent(TransferissueJobDetailDO::getFromOwnerCode, reqVO.getFromOwnerCode())
.eqIfPresent(TransferissueJobDetailDO::getToOwnerCode, reqVO.getToOwnerCode())
.eqIfPresent(TransferissueJobDetailDO::getMasterId, reqVO.getMasterId())
.orderByDesc(TransferissueJobDetailDO::getId));
}
default PageResult<TransferissueJobDetailDO> selectSenior(CustomConditions conditions) {

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferissueJob/TransferissueJobMainMapper.java

@ -10,7 +10,9 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.transferissueJob.vo.TransferissueJobMainExportReqVO;
import com.win.module.wms.controller.transferissueJob.vo.TransferissueJobMainPageReqVO;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO;
import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO;
import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobMainDO;
import com.win.module.wms.enums.order.OrderStatusEnum;
import org.apache.ibatis.annotations.Mapper;
/**
@ -128,4 +130,9 @@ public interface TransferissueJobMainMapper extends BaseMapperX<TransferissueJob
}
default Long selectByRequestNumber(String requestNumber) {
return selectCount(new LambdaQueryWrapperX<TransferissueJobMainDO>()
.eq(TransferissueJobMainDO::getRequestNumber, requestNumber)
.ne(TransferissueJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode()));
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferissueRecord/TransferissueRecordDetailMapper.java

@ -51,6 +51,7 @@ public interface TransferissueRecordDetailMapper extends BaseMapperX<Transferiss
.eqIfPresent(TransferissueRecordDetailDO::getFromContainerNumber, reqVO.getFromContainerNumber())
.eqIfPresent(TransferissueRecordDetailDO::getToContainerNumber, reqVO.getToContainerNumber())
.eqIfPresent(TransferissueRecordDetailDO::getToBatch, reqVO.getToBatch())
.eqIfPresent(TransferissueRecordDetailDO::getMasterId, reqVO.getMasterId())
.orderByDesc(TransferissueRecordDetailDO::getId));
}
default PageResult<TransferissueRecordDetailDO> selectSenior(CustomConditions conditions) {
@ -87,6 +88,7 @@ public interface TransferissueRecordDetailMapper extends BaseMapperX<Transferiss
.eqIfPresent(TransferissueRecordDetailDO::getFromContainerNumber, reqVO.getFromContainerNumber())
.eqIfPresent(TransferissueRecordDetailDO::getToContainerNumber, reqVO.getToContainerNumber())
.eqIfPresent(TransferissueRecordDetailDO::getToBatch, reqVO.getToBatch())
.eqIfPresent(TransferissueRecordDetailDO::getMasterId, reqVO.getMasterId())
.orderByDesc(TransferissueRecordDetailDO::getId));
}

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptJob/TransferreceiptJobDetailMapper.java

@ -1,16 +1,15 @@
package com.win.module.wms.dal.mysql.transferreceiptJob;
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.transferreceiptJob.vo.TransferreceiptJobDetailExportReqVO;
import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailPageReqVO;
import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobDetailDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 调拨入库任务子 Mapper
@ -73,4 +72,9 @@ public interface TransferreceiptJobDetailMapper extends BaseMapperX<Transferrece
.orderByDesc(TransferreceiptJobDetailDO::getId));
}
default List<TransferreceiptJobDetailDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<TransferreceiptJobDetailDO>()
.eq(TransferreceiptJobDetailDO::getMasterId, masterId));
}
}

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptJob/TransferreceiptJobMainMapper.java

@ -11,6 +11,7 @@ import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMai
import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMainPageReqVO;
import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobMainDO;
import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobMainDO;
import com.win.module.wms.enums.order.OrderStatusEnum;
import org.apache.ibatis.annotations.Mapper;
/**
@ -126,4 +127,9 @@ public interface TransferreceiptJobMainMapper extends BaseMapperX<Transferreceip
}
default Long selectByRequestNumber(String requestNumber){
return selectCount(new LambdaQueryWrapperX<TransferreceiptJobMainDO>()
.eq(TransferreceiptJobMainDO::getRequestNumber,requestNumber)
.ne(TransferreceiptJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode()));
}
}

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptRequest/TransferreceiptRequestDetailMapper.java

@ -7,6 +7,7 @@ import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestDetailExportReqVO;
import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestDetailPageReqVO;
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO;
import com.win.module.wms.dal.dataobject.transferreceiptRequest.TransferreceiptRequestDetailDO;
import org.apache.ibatis.annotations.Mapper;
@ -74,4 +75,8 @@ public interface TransferreceiptRequestDetailMapper extends BaseMapperX<Transfer
.orderByDesc(TransferreceiptRequestDetailDO::getId));
}
default List<TransferreceiptRequestDetailDO> selectList(Long masterId){
return selectList(new LambdaQueryWrapperX<TransferreceiptRequestDetailDO>()
.eq(TransferreceiptRequestDetailDO::getMasterId, masterId));
}
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptRequest/TransferreceiptRequestMainMapper.java

@ -9,7 +9,9 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainExportReqVO;
import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO;
import com.win.module.wms.dal.dataobject.transferreceiptRequest.TransferreceiptRequestMainDO;
import com.win.module.wms.enums.order.OrderStatusEnum;
import org.apache.ibatis.annotations.Mapper;
/**
@ -84,4 +86,9 @@ public interface TransferreceiptRequestMainMapper extends BaseMapperX<Transferre
.orderByDesc(TransferreceiptRequestMainDO::getId));
}
default Long selectByRequestNumber(String requestNumber){
return selectCount(new LambdaQueryWrapperX<TransferreceiptRequestMainDO>()
.eq(TransferreceiptRequestMainDO::getNumber, requestNumber)
.ne(TransferreceiptRequestMainDO::getStatus, OrderStatusEnum.CLOSED.getCode()));
}
}

38
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueJob/TransferissueJobMainServiceImpl.java

@ -11,9 +11,12 @@ import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.controller.transferissueJob.vo.*;
import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestDetailCreateReqVO;
import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainCreateReqVO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobDetailDO;
import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordDetailDO;
@ -24,8 +27,11 @@ import com.win.module.wms.enums.job.JobStatusState;
import com.win.module.wms.service.expectin.ExpectinService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.recordsetting.RecordsettingService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.service.transferreceiptRequest.TransferreceiptRequestMainService;
import com.win.module.wms.util.JobUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -53,6 +59,7 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*;
*
* @author 超级管理员
*/
@Slf4j
@Service
@Validated
public class TransferissueJobMainServiceImpl implements TransferissueJobMainService {
@ -81,6 +88,10 @@ public class TransferissueJobMainServiceImpl implements TransferissueJobMainServ
private TransferissueRecordDetailMapper transferissueRecordDetailMapper;
@Resource
private RecordsettingService recordsettingService;
@Resource
private TransferreceiptRequestMainService transferreceiptRequestMainService;
@Resource
private RequestsettingService requestsettingService;
@Override
@ -219,7 +230,6 @@ public class TransferissueJobMainServiceImpl implements TransferissueJobMainServ
if(!flag) {
throw new ServiceException(TRANSFERISSUE_JOB_MAIN_STATUS_ERROR);
}
//更新完成信息
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
@ -236,7 +246,7 @@ public class TransferissueJobMainServiceImpl implements TransferissueJobMainServ
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRecord");
transferissueRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType());
transferissueRecordMainDO.setInTransactionType(businesstypeDO.getInTransactionType());
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_REQUEST.getCode());
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_RECORD.getCode());
String interFaceType = recordsettingService.selectRecordsettingExist("TransferDeliverRecord").getInterfaceType();
transferissueRecordMainDO.setInterfaceType(interFaceType);
transferissueRecordMainDO.setNumber(number);
@ -256,6 +266,8 @@ public class TransferissueJobMainServiceImpl implements TransferissueJobMainServ
List<TransferissueJobDetailUpdateReqVO> reqSubList = updateReqVO.getSubList();
List<TransferissueRecordDetailDO> transferissueRecordDetailDOList = new ArrayList<>();
List<TransferreceiptRequestDetailCreateReqVO> transferreceiptReqSubList = new ArrayList<>();
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for(TransferissueJobDetailDO transferissueJobDetailDO:subList) {
@ -271,6 +283,7 @@ public class TransferissueJobMainServiceImpl implements TransferissueJobMainServ
if(isExists) {
TransferissueRecordDetailDO transferissueRecordDetailDO = new TransferissueRecordDetailDO();
BeanUtils.copyProperties(transferissueJobDetailUpdateReqVO, transferissueRecordDetailDO);
// transferissueRecordDetailDO.setInterfaceType()
transferissueRecordDetailDO.setMasterId(String.valueOf(transferissueRecordMainDO.getId()));
transferissueRecordDetailDO.setNumber(number);
transferissueRecordDetailDO.setJobDetailId(String.valueOf(transferissueJobDetailDO.getId()));
@ -291,6 +304,15 @@ public class TransferissueJobMainServiceImpl implements TransferissueJobMainServ
transferissueRecordDetailDO.setInventoryStatus(transferissueJobDetailUpdateReqVO.getToInventoryStatus());//toInventoryStatus
transferissueRecordDetailDO.setQty(new BigDecimal(transferissueJobDetailUpdateReqVO.getToQty() == null?"0":transferissueJobDetailUpdateReqVO.getToQty()));//toQty
transferissueRecordDetailDOList.add(transferissueRecordDetailDO);
TransferreceiptRequestDetailCreateReqVO transferreceiptRequestDetailCreateReqVO = new TransferreceiptRequestDetailCreateReqVO();
BeanUtils.copyProperties(transferissueJobDetailUpdateReqVO,transferreceiptRequestDetailCreateReqVO);
transferreceiptRequestDetailCreateReqVO.setToLocationCode(transferissueJobDetailUpdateReqVO.getToLocationCode());
transferreceiptRequestDetailCreateReqVO.setFromLocationCode(transferissueJobDetailUpdateReqVO.getFromLocationCode());
transferreceiptRequestDetailCreateReqVO.setPackingNumber(transferissueJobDetailUpdateReqVO.getPackingNumber());
transferreceiptRequestDetailCreateReqVO.setBatch(transferissueJobDetailUpdateReqVO.getBatch());
transferreceiptReqSubList.add(transferreceiptRequestDetailCreateReqVO);
//添加库存事务list
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(transferissueRecordDetailDO, transactionCreateReqVO);
@ -313,6 +335,18 @@ public class TransferissueJobMainServiceImpl implements TransferissueJobMainServ
}
if(!transferissueRecordDetailDOList.isEmpty()) {
transferissueRecordDetailMapper.insertBatch(transferissueRecordDetailDOList);
//创建调拨入库申请
TransferreceiptRequestMainCreateReqVO createReqVO = new TransferreceiptRequestMainCreateReqVO();
BeanUtils.copyProperties(transferissueJobMainDO,createReqVO);
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferReceiptRequest");
// 自动执行相关内容获取配置信息
createReqVO.setAutoCommit(requestsettingDO.getAutoCommit());
createReqVO.setAutoAgree(requestsettingDO.getAutoAgree());
createReqVO.setAutoExecute(requestsettingDO.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
createReqVO.setSubList(transferreceiptReqSubList);
log.info("请求参数查看:{}",createReqVO);
transferreceiptRequestMainService.createTransferreceiptRequestMain(createReqVO);
}
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java

@ -147,6 +147,8 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
transferissueRequestMainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId()));
transferissueRequestMainDO.setStatus(requestStatusState.getState().getCode());
transferissueRequestMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses());
transferissueRequestMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses());
transferissueRequestMainMapper.insert(transferissueRequestMainDO);
for(TransferissueRequestDetailDO transferissueRequestDetailDO: subDOList){
transferissueRequestDetailDO.setMasterId(transferissueRequestMainDO.getId());
@ -458,7 +460,7 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest
public Integer closeTransferissueRequestMain(Long id) {
// 校验存在存在下级单据
TransferissueRequestMainDO mainDO = validateTransferissueRequestMainExists(id);
Long count = transferissueRequestMainMapper.selectByRequestNumber(mainDO.getNumber());
Long count = transferissueJobMainMapper.selectByRequestNumber(mainDO.getNumber());
if(count > 0) {
throw new ServiceException(TRANSFERISSUE_JOB_MAIN_EXISTS);
}
@ -477,7 +479,7 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest
public Integer reAddTransferissueRequestMain(Long id) {
// 校验存在存在下级单据
TransferissueRequestMainDO mainDO = validateTransferissueRequestMainExists(id);
Long count = transferissueRequestMainMapper.selectByRequestNumber(mainDO.getNumber());
Long count = transferissueJobMainMapper.selectByRequestNumber(mainDO.getNumber());
if(count > 0) {
throw new ServiceException(TRANSFERISSUE_JOB_MAIN_EXISTS);
}
@ -571,7 +573,7 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest
TransferissueRecordMainCreateReqVO transferissueRecordMainCreateReqVO = new TransferissueRecordMainCreateReqVO();
BeanUtils.copyProperties(mainDO, transferissueRecordMainCreateReqVO);
transferissueRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber());
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_REQUEST.getCode());
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_RECORD.getCode());
transferissueRecordMainCreateReqVO.setNumber(number);
//增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRecord");

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobDetailService.java

@ -8,6 +8,7 @@ import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDet
import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailExportReqVO;
import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailPageReqVO;
import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobDetailDO;
import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobDetailDO;
import com.win.framework.common.pojo.PageResult;
@ -79,4 +80,10 @@ public interface TransferreceiptJobDetailService {
*/
List<TransferreceiptJobDetailDO> getTransferreceiptJobDetailList(TransferreceiptJobDetailExportReqVO exportReqVO);
/**
* 获取任务子表数据
* @param id
* @return
*/
List<TransferreceiptJobDetailDO> selectList(Long id);
}

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobDetailServiceImpl.java

@ -5,6 +5,7 @@ import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDet
import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailExportReqVO;
import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailPageReqVO;
import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobDetailDO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -87,4 +88,9 @@ public class TransferreceiptJobDetailServiceImpl implements TransferreceiptJobDe
return transferreceiptJobDetailMapper.selectList(exportReqVO);
}
@Override
public List<TransferreceiptJobDetailDO> selectList(Long masterId) {
return transferreceiptJobDetailMapper.selectList(masterId);
}
}

35
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobMainService.java

@ -94,4 +94,39 @@ public interface TransferreceiptJobMainService {
* @return
*/
Map<String,Integer> getCountByStatus(@Nullable Collection<String> types);
/**
* 承接任务
* @param id 主键Id
* @return 更新数量
*/
int acceptTransferreceiptJobMain(Long id);
/**
* 放弃任务
* @param id 主键Id
* @return 更新数量
*/
int abandonTransferreceiptJobMain(Long id);
/**
* 关闭任务
* @param id 主键Id
* @return 更新数量
*/
int closeTransferreceiptJobMain(Long id);
/**
* 执行调拨入库任务
* @param updateReqVO 执行传参
* @return
*/
String executeTransferreceiptJobMain(TransferreceiptJobMainUpdateReqVO updateReqVO);
/**
* 获取执行请求参数
* @param id 主键ID
* @return TransferreceiptJobMainUpdateReqVO
*/
TransferreceiptJobMainUpdateReqVO getExecuteJson(Long id);
}

244
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobMainServiceImpl.java

@ -1,15 +1,45 @@
package com.win.module.wms.service.transferreceiptJob;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMainCreateReqVO;
import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMainExportReqVO;
import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMainPageReqVO;
import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMainUpdateReqVO;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.controller.transferissueJob.vo.TransferissueJobDetailUpdateReqVO;
import com.win.module.wms.controller.transferissueJob.vo.TransferissueJobMainUpdateReqVO;
import com.win.module.wms.controller.transferreceiptJob.vo.*;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobDetailDO;
import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobMainDO;
import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordDetailDO;
import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordMainDO;
import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobDetailDO;
import com.win.module.wms.dal.dataobject.transferreceiptRecord.TransferreceiptRecordDetailDO;
import com.win.module.wms.dal.dataobject.transferreceiptRecord.TransferreceiptRecordMainDO;
import com.win.module.wms.dal.mysql.transferreceiptRecord.TransferreceiptRecordDetailMapper;
import com.win.module.wms.dal.mysql.transferreceiptRecord.TransferreceiptRecordMainMapper;
import com.win.module.wms.enums.job.JobStatusState;
import com.win.module.wms.service.expectin.ExpectinService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.recordsetting.RecordsettingService;
import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobMainDO;
@ -19,6 +49,7 @@ import com.win.module.wms.convert.transferreceiptJob.TransferreceiptJobMainConve
import com.win.module.wms.dal.mysql.transferreceiptJob.TransferreceiptJobMainMapper;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
@ -32,6 +63,28 @@ public class TransferreceiptJobMainServiceImpl implements TransferreceiptJobMain
@Resource
private TransferreceiptJobMainMapper transferreceiptJobMainMapper;
@Resource
private AdminUserApi userApi;
@Resource
private TrendsApi trendsApi;
@Resource
private TransferreceiptJobDetailService transferreceiptJobDetailService;
@Resource
private JobUtils jobUtils;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private RecordsettingService recordsettingService;
@Resource
private TransferreceiptRecordMainMapper transferreceiptRecordMainMapper;
@Resource
private LocationService locationService;
@Resource
private TransferreceiptRecordDetailMapper transferreceiptRecordDetailMapper;
@Resource
private TransactionService transactionService;
@Resource
private ExpectinService expectinService;
@Override
public Long createTransferreceiptJobMain(TransferreceiptJobMainCreateReqVO createReqVO) {
@ -62,10 +115,12 @@ public class TransferreceiptJobMainServiceImpl implements TransferreceiptJobMain
transferreceiptJobMainMapper.deleteById(id);
}
private void validateTransferreceiptJobMainExists(Long id) {
if (transferreceiptJobMainMapper.selectById(id) == null) {
private TransferreceiptJobMainDO validateTransferreceiptJobMainExists(Long id) {
TransferreceiptJobMainDO transferreceiptJobMainDO = transferreceiptJobMainMapper.selectById(id);
if (transferreceiptJobMainDO == null) {
throw exception(TRANSFERRECEIPT_JOB_MAIN_NOT_EXISTS);
}
return transferreceiptJobMainDO;
}
@Override
@ -108,4 +163,181 @@ public class TransferreceiptJobMainServiceImpl implements TransferreceiptJobMain
map.put("count", l.intValue());
return map;
}
@Transactional
@Override
public int acceptTransferreceiptJobMain(Long id) {
TransferreceiptJobMainDO transferreceiptJobMainDO = this.validateTransferreceiptJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(transferreceiptJobMainDO.getStatus());
if(!jobStatusState.accept()) {
throw exception(TRANSFERRECEIPT_JOB_MAIN_STATUS_ERROR);
}
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
transferreceiptJobMainDO.setStatus(jobStatusState.getState().getCode());
transferreceiptJobMainDO.setAcceptUserId(String.valueOf(userId));
transferreceiptJobMainDO.setAcceptUserName(userRespDTO.getNickname());
transferreceiptJobMainDO.setAcceptTime(LocalDateTime.now());
trendsApi.createTrends(id, "TransferReceiptJob", "承接了调拨入库任务", TrendsTypeEnum.UPDATE);
return transferreceiptJobMainMapper.updateById(transferreceiptJobMainDO);
}
@Transactional
@Override
public int abandonTransferreceiptJobMain(Long id) {
TransferreceiptJobMainDO transferreceiptJobMainDO = this.validateTransferreceiptJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(transferreceiptJobMainDO.getStatus());
if(!jobStatusState.cancelAccept()) {
throw exception(TRANSFERRECEIPT_JOB_MAIN_STATUS_ERROR);
}
transferreceiptJobMainDO.setStatus(jobStatusState.getState().getCode());
transferreceiptJobMainDO.setAcceptUserId(null);
transferreceiptJobMainDO.setAcceptUserName(null);
transferreceiptJobMainDO.setAcceptTime(null);
trendsApi.createTrends(id, "TransferReceiptJob", "取消了调拨入库任务", TrendsTypeEnum.UPDATE);
return transferreceiptJobMainMapper.updateById(transferreceiptJobMainDO);
}
@Transactional
@Override
public int closeTransferreceiptJobMain(Long id) {
TransferreceiptJobMainDO transferreceiptJobMainDO = this.validateTransferreceiptJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(transferreceiptJobMainDO.getStatus());
if(!jobStatusState.close()) {
throw exception(TRANSFERRECEIPT_JOB_MAIN_STATUS_ERROR);
}
transferreceiptJobMainDO.setStatus(jobStatusState.getState().getCode());
trendsApi.createTrends(id, "TransferReceiptJob", "关闭了调拨入库任务", TrendsTypeEnum.UPDATE);
return transferreceiptJobMainMapper.updateById(transferreceiptJobMainDO);
}
@Transactional
@Override
public String executeTransferreceiptJobMain(TransferreceiptJobMainUpdateReqVO updateReqVO) {
// 查询任务主表与子表
TransferreceiptJobMainDO transferreceiptJobMainDO = this.validateTransferreceiptJobMainExists(updateReqVO.getId());
List<TransferreceiptJobDetailDO> subList = transferreceiptJobDetailService.selectList(transferreceiptJobMainDO.getId());
JobStatusState jobStatusState = new JobStatusState(transferreceiptJobMainDO.getStatus());
boolean flag = jobStatusState.execute();
if(!flag) {
throw new ServiceException(TRANSFERRECEIPT_JOB_MAIN_STATUS_ERROR);
}
//更新完成信息
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
transferreceiptJobMainDO.setStatus(jobStatusState.getState().getCode());
transferreceiptJobMainDO.setCompleteTime(LocalDateTime.now());
transferreceiptJobMainDO.setCompleteUserId(String.valueOf(userRespDTO.getId()));
transferreceiptJobMainDO.setCompleteUserName(userRespDTO.getNickname());
//更新任务表状态
transferreceiptJobMainMapper.updateById(transferreceiptJobMainDO);
// 创建调拨发出记录
TransferreceiptRecordMainDO transferreceiptRecordMainDO = new TransferreceiptRecordMainDO();
BeanUtils.copyProperties(transferreceiptJobMainDO, transferreceiptRecordMainDO);
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferReceiptRecord");
transferreceiptRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType());
transferreceiptRecordMainDO.setInTransactionType(businesstypeDO.getInTransactionType());
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_RECEIPT_RECORD.getCode());
String interFaceType = recordsettingService.selectRecordsettingExist("TransferReceiptRecord").getInterfaceType();
transferreceiptRecordMainDO.setInterfaceType(interFaceType);
transferreceiptRecordMainDO.setNumber(number);
transferreceiptRecordMainDO.setBusinessType(businesstypeDO.getCode());
transferreceiptRecordMainDO.setJobNumber(transferreceiptJobMainDO.getNumber());
transferreceiptRecordMainDO.setExecuteTime(LocalDateTime.now());
transferreceiptRecordMainDO.setActiveDate(LocalDateTime.now());
transferreceiptRecordMainDO.setDueTime(transferreceiptJobMainDO.getRequestDueTime());
transferreceiptRecordMainDO.setAvailable("TRUE");
transferreceiptRecordMainDO.setId(null);
transferreceiptRecordMainDO.setCreateTime(null);
transferreceiptRecordMainDO.setCreator(null);
transferreceiptRecordMainDO.setUpdateTime(null);
transferreceiptRecordMainDO.setUpdater(null);
transferreceiptRecordMainMapper.insert(transferreceiptRecordMainDO);
// 创建调拨发出记录明细
List<TransferreceiptJobDetailUpdateReqVO> reqSubList = updateReqVO.getSubList();
List<TransferreceiptRecordDetailDO> transferreceiptRecordDetailDOList = new ArrayList<>();
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for(TransferreceiptJobDetailDO transferreceiptJobDetailDO:subList) {
boolean isExists = false;
TransferreceiptJobDetailUpdateReqVO transferreceiptJobDetailUpdateReqVO = null;
for(TransferreceiptJobDetailUpdateReqVO temp:reqSubList) {
if(temp.getId().equals(transferreceiptJobDetailDO.getId())) {
transferreceiptJobDetailUpdateReqVO = temp;
isExists = true;
break;
}
}
if(isExists) {
TransferreceiptRecordDetailDO transferreceiptRecordDetailDO = new TransferreceiptRecordDetailDO();
BeanUtils.copyProperties(transferreceiptJobDetailUpdateReqVO, transferreceiptRecordDetailDO);
transferreceiptRecordDetailDO.setMasterId(String.valueOf(transferreceiptRecordMainDO.getId()));
transferreceiptRecordDetailDO.setNumber(number);
transferreceiptRecordDetailDO.setJobDetailId(String.valueOf(transferreceiptJobDetailDO.getId()));
transferreceiptRecordDetailDO.setFromPackingNumber(transferreceiptJobDetailDO.getPackingNumber());
transferreceiptRecordDetailDO.setToPackingNumber(transferreceiptJobDetailUpdateReqVO.getToPackingNumber());// toPackingNumber
transferreceiptRecordDetailDO.setFromContainerNumber(transferreceiptJobDetailUpdateReqVO.getContainerNumber());
transferreceiptRecordDetailDO.setToContainerNumber(transferreceiptJobDetailUpdateReqVO.getToContainerNumber()); // toContainerNumber
transferreceiptRecordDetailDO.setFromBatch(transferreceiptJobDetailDO.getBatch());
transferreceiptRecordDetailDO.setToBatch(transferreceiptJobDetailUpdateReqVO.getToBatch()); // toBatch
LocationDO locationDO1 = locationService.selectLocation(transferreceiptJobDetailDO.getFromLocationCode());
transferreceiptRecordDetailDO.setFromLocationCode(locationDO1.getCode());
transferreceiptRecordDetailDO.setFromAreaCode(locationDO1.getAreaCode());
transferreceiptRecordDetailDO.setFromLocationGroupCode(locationDO1.getLocationGroupCode());
LocationDO locationDO2 = locationService.selectLocation(transferreceiptJobDetailDO.getToLocationCode());//toLocationCode
transferreceiptRecordDetailDO.setToLocationCode(locationDO2.getCode());
transferreceiptRecordDetailDO.setToAreaCode(locationDO2.getAreaCode());
transferreceiptRecordDetailDO.setToLocationGroupCode(locationDO2.getLocationGroupCode());
transferreceiptRecordDetailDO.setInventoryStatus(transferreceiptJobDetailUpdateReqVO.getToInventoryStatus());//toInventoryStatus
transferreceiptRecordDetailDO.setQty(new BigDecimal(transferreceiptJobDetailUpdateReqVO.getToQty() == null?"0":transferreceiptJobDetailUpdateReqVO.getToQty()));//toQty
transferreceiptRecordDetailDOList.add(transferreceiptRecordDetailDO);
//添加库存事务list
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(transferreceiptJobDetailDO, transactionCreateReqVO);
//增加业务类型
transactionCreateReqVO.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVO.setBusinessType(transferreceiptRecordMainDO.getBusinessType());
transactionCreateReqVO.setLocationCode(transferreceiptJobDetailDO.getToLocationCode());
transactionCreateReqVO.setOwnerCode(transferreceiptJobDetailDO.getFromOwnerCode());
transactionCreateReqVO.setPackingNumber(transferreceiptJobDetailDO.getPackingNumber());
transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVO.setBatch(transferreceiptJobDetailDO.getBatch());
transactionCreateReqVO.setWarehouseCode(transferreceiptRecordMainDO.getToWarehouseCode());
transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVO);
}
}
if(!transferreceiptRecordDetailDOList.isEmpty()) {
transferreceiptRecordDetailMapper.insertBatch(transferreceiptRecordDetailDOList);
}
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//移除预计入
expectinService.deleteExpectinByJobNumber(transferreceiptJobMainDO.getNumber());
//变更记录
trendsApi.createTrends(transferreceiptJobMainDO.getId(), "TransferReceiptJob", "执行调拨入库任务", TrendsTypeEnum.UPDATE);
return number;
}
@Override
public TransferreceiptJobMainUpdateReqVO getExecuteJson(Long id) {
TransferreceiptJobMainUpdateReqVO transferreceiptJobMainUpdateReqVO = new TransferreceiptJobMainUpdateReqVO();
TransferreceiptJobMainDO transferreceiptJobMainDO = this.validateTransferreceiptJobMainExists(id);
List<TransferreceiptJobDetailDO> subList = transferreceiptJobDetailService.selectList(transferreceiptJobMainDO.getId());
BeanUtils.copyProperties(transferreceiptJobMainDO,transferreceiptJobMainUpdateReqVO);
List<TransferreceiptJobDetailUpdateReqVO> transferreceiptJobDetailUpdateReqVOList = new ArrayList<>();
for(TransferreceiptJobDetailDO transferreceiptJobDetailDO:subList){
TransferreceiptJobDetailUpdateReqVO transferreceiptJobDetailUpdateReqVO = new TransferreceiptJobDetailUpdateReqVO();
BeanUtils.copyProperties(transferreceiptJobDetailDO,transferreceiptJobDetailUpdateReqVO);
transferreceiptJobDetailUpdateReqVOList.add(transferreceiptJobDetailUpdateReqVO);
}
transferreceiptJobMainUpdateReqVO.setSubList(transferreceiptJobDetailUpdateReqVOList);
return transferreceiptJobMainUpdateReqVO;
}
}

41
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestMainService.java

@ -79,4 +79,45 @@ public interface TransferreceiptRequestMainService {
*/
List<TransferreceiptRequestMainDO> getTransferreceiptRequestMainList(TransferreceiptRequestMainExportReqVO exportReqVO);
/**
* 关闭调拨入库申请主
* @param id 主键ID
* @return
*/
Integer closeTransferreceiptRequestMain(Long id);
/**
* 重新添加调拨入库申请主
* @param id 主键ID
* @return 更新条数
*/
Integer reAddTransferreceiptRequestMain(Long id);
/**
* 提交调拨入库申请主
* @param id 主键ID
* @return 更新条数
*/
Integer submitTransferreceiptRequestMain(Long id);
/**
* 审批拒绝调拨入库申请主
* @param id 主键ID
* @return 更新条数
*/
Integer abortTransferreceiptRequestMain(Long id);
/**
* 审批通过调拨入库申请主
* @param id 主键ID
* @return 更新条数
*/
Integer agreeTransferreceiptRequestMain(Long id);
/**
* 处理调拨入库申请主
* @param id 主键ID
* @return 更新条数
*/
Integer handleTransferreceiptRequestMain(Long id);
}

479
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestMainServiceImpl.java

@ -1,23 +1,80 @@
package com.win.module.wms.service.transferreceiptRequest;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainCreateReqVO;
import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainExportReqVO;
import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainPageReqVO;
import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainUpdateReqVO;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO;
import com.win.module.wms.controller.transferissueRecord.vo.TransferissueRecordDetailCreateReqVO;
import com.win.module.wms.controller.transferissueRecord.vo.TransferissueRecordMainCreateReqVO;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailCreateReqVO;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailUpdateReqVO;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainBaseVO;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainUpdateReqVO;
import com.win.module.wms.controller.transferreceiptRecord.vo.TransferreceiptRecordDetailCreateReqVO;
import com.win.module.wms.controller.transferreceiptRecord.vo.TransferreceiptRecordMainCreateReqVO;
import com.win.module.wms.controller.transferreceiptRequest.vo.*;
import com.win.module.wms.convert.transferissueJob.TransferissueJobDetailConvert;
import com.win.module.wms.convert.transferissueJob.TransferissueJobMainConvert;
import com.win.module.wms.convert.transferissueRecord.TransferissueRecordDetailConvert;
import com.win.module.wms.convert.transferissueRecord.TransferissueRecordMainConvert;
import com.win.module.wms.convert.transferissueRequest.TransferissueRequestDetailConvert;
import com.win.module.wms.convert.transferissueRequest.TransferissueRequestMainConvert;
import com.win.module.wms.convert.transferreceiptJob.TransferreceiptJobDetailConvert;
import com.win.module.wms.convert.transferreceiptJob.TransferreceiptJobMainConvert;
import com.win.module.wms.convert.transferreceiptRecord.TransferreceiptRecordDetailConvert;
import com.win.module.wms.convert.transferreceiptRecord.TransferreceiptRecordMainConvert;
import com.win.module.wms.convert.transferreceiptRequest.TransferreceiptRequestDetailConvert;
import com.win.module.wms.dal.dataobject.balance.BalanceDO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobDetailDO;
import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobMainDO;
import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordMainDO;
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO;
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO;
import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobDetailDO;
import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobMainDO;
import com.win.module.wms.dal.dataobject.transferreceiptRecord.TransferreceiptRecordDetailDO;
import com.win.module.wms.dal.dataobject.transferreceiptRecord.TransferreceiptRecordMainDO;
import com.win.module.wms.dal.dataobject.transferreceiptRequest.TransferreceiptRequestDetailDO;
import com.win.module.wms.dal.mysql.transferreceiptJob.TransferreceiptJobDetailMapper;
import com.win.module.wms.dal.mysql.transferreceiptJob.TransferreceiptJobMainMapper;
import com.win.module.wms.dal.mysql.transferreceiptRecord.TransferreceiptRecordDetailMapper;
import com.win.module.wms.dal.mysql.transferreceiptRecord.TransferreceiptRecordMainMapper;
import com.win.module.wms.dal.mysql.transferreceiptRequest.TransferreceiptRequestDetailMapper;
import com.win.module.wms.enums.job.JobStatusEnum;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.enums.request.RequestStatusState;
import com.win.module.wms.service.expectin.ExpectinService;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.jobsetting.JobsettingService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.recordsetting.RecordsettingService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.dal.dataobject.transferreceiptRequest.TransferreceiptRequestMainDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.convert.transferreceiptRequest.TransferreceiptRequestMainConvert;
import com.win.module.wms.dal.mysql.transferreceiptRequest.TransferreceiptRequestMainMapper;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
@ -31,14 +88,270 @@ public class TransferreceiptRequestMainServiceImpl implements TransferreceiptReq
@Resource
private TransferreceiptRequestMainMapper transferreceiptRequestMainMapper;
@Resource
private RequestsettingService requestsettingService;
@Resource
private JobUtils jobUtils;
@Resource
private LocationService locationService;
@Resource
private ItembasicService itembasicService;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private AdminUserApi userApi;
@Resource
private TransferreceiptRequestDetailMapper transferreceiptRequestDetailMapper;
@Resource
private TrendsApi trendsApi;
@Resource
private TransferreceiptRecordMainMapper transferreceiptRecordMainMapper;
@Resource
private RecordsettingService recordsettingService;
@Resource
private TransferreceiptRecordDetailMapper transferreceiptRecordDetailMapper;
@Resource
private JobsettingService jobsettingService;
@Resource
private TransferreceiptJobMainMapper transferreceiptJobMainMapper;
@Resource
private TransferreceiptJobDetailMapper transferreceiptJobDetailMapper;
@Resource
private ExpectinService expectinService;
@Override
public Long createTransferreceiptRequestMain(TransferreceiptRequestMainCreateReqVO createReqVO) {
// 插入
TransferreceiptRequestMainDO transferreceiptRequestMain = TransferreceiptRequestMainConvert.INSTANCE.convert(createReqVO);
transferreceiptRequestMainMapper.insert(transferreceiptRequestMain);
// 返回
return transferreceiptRequestMain.getId();
// Setting-----QReqs
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferReceiptRequest");
TransferreceiptRequestMainDO transferreceiptRequestMainDO = validatorToCreate(createReqVO,requestsettingDO);
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(transferreceiptRequestMainDO.getStatus())) {
List<TransferreceiptRequestDetailDO> detailDOList = transferreceiptRequestDetailMapper.selectList(transferreceiptRequestMainDO.getId());
this.generateJob(transferreceiptRequestMainDO,detailDOList);
}
trendsApi.createTrends(requestsettingDO.getId(), "TransferReceiptRequest", "增加了调拨入库申请", TrendsTypeEnum.CREATE);
return transferreceiptRequestMainDO.getId();
}
private void generateJob(TransferreceiptRequestMainDO mainDO, List<TransferreceiptRequestDetailDO> detailDOList) {
//跳过任务直接生成记录
if("TRUE".equals(mainDO.getDirectCreateRecord())) {
TransferreceiptRecordMainCreateReqVO transferreceiptRecordMainCreateReqVO = new TransferreceiptRecordMainCreateReqVO();
BeanUtils.copyProperties(mainDO, transferreceiptRecordMainCreateReqVO);
transferreceiptRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber());
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_RECEIPT_RECORD.getCode());
transferreceiptRecordMainCreateReqVO.setNumber(number);
//增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferReceiptRecord");
transferreceiptRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode());
transferreceiptRecordMainCreateReqVO.setOutTransactionType(businesstypeDO.getOutTransactionType());
transferreceiptRecordMainCreateReqVO.setInTransactionType(businesstypeDO.getInTransactionType());
String interFaceType = recordsettingService.selectRecordsettingExist("TransferReceiptRecord").getInterfaceType();
transferreceiptRecordMainCreateReqVO.setInterfaceType(interFaceType);
transferreceiptRecordMainCreateReqVO.setExecuteTime(LocalDateTime.now());
transferreceiptRecordMainCreateReqVO.setActiveDate(LocalDateTime.now());
transferreceiptRecordMainCreateReqVO.setAvailable("TRUE");
transferreceiptRecordMainCreateReqVO.setDueTime(mainDO.getDueTime());
transferreceiptRecordMainCreateReqVO.setId(null);
transferreceiptRecordMainCreateReqVO.setCreator(null);
transferreceiptRecordMainCreateReqVO.setCreateTime(null);
TransferreceiptRecordMainDO transferreceiptRecordMainDO = TransferreceiptRecordMainConvert.INSTANCE.convert(transferreceiptRecordMainCreateReqVO);
transferreceiptRecordMainMapper.insert(transferreceiptRecordMainDO);
for(TransferreceiptRequestDetailDO transferreceiptRequestDetailDO : detailDOList) {
TransferreceiptRecordDetailCreateReqVO transferreceiptRecordDetailCreateReqVO = new TransferreceiptRecordDetailCreateReqVO();
BeanUtils.copyProperties(transferreceiptRequestDetailDO, transferreceiptRecordDetailCreateReqVO);
transferreceiptRecordDetailCreateReqVO.setNumber(number);
transferreceiptRecordDetailCreateReqVO.setMasterId(String.valueOf(transferreceiptRequestDetailDO.getId()));
transferreceiptRecordDetailCreateReqVO.setFromPackingNumber(transferreceiptRequestDetailDO.getPackingNumber());
transferreceiptRecordDetailCreateReqVO.setToPackingNumber(transferreceiptRequestDetailDO.getPackingNumber());
transferreceiptRecordDetailCreateReqVO.setFromContainerNumber(transferreceiptRequestDetailDO.getContainerNumber());
transferreceiptRecordDetailCreateReqVO.setToContainerNumber(transferreceiptRequestDetailDO.getContainerNumber());
transferreceiptRecordDetailCreateReqVO.setFromBatch(transferreceiptRequestDetailDO.getBatch());
transferreceiptRecordDetailCreateReqVO.setToBatch(transferreceiptRequestDetailDO.getBatch());
transferreceiptRecordDetailCreateReqVO.setInventoryStatus(transferreceiptRequestDetailDO.getInventoryStatus());
transferreceiptRecordDetailCreateReqVO.setFromLocationGroupCode(transferreceiptRequestDetailDO.getFromLocationCode());
transferreceiptRecordDetailCreateReqVO.setFromAreaCode(transferreceiptRequestDetailDO.getFromLocationCode());
TransferreceiptRecordDetailDO transferreceiptRecordDetailDO = TransferreceiptRecordDetailConvert.INSTANCE.convert(transferreceiptRecordDetailCreateReqVO);
transferreceiptRecordDetailMapper.insert(transferreceiptRecordDetailDO);
}
return;
}
// 任务 主表数据创建
TransferreceiptJobMainDO transferreceiptJobMainDO = TransferreceiptJobMainConvert.INSTANCE.convert(mainDO);
BeanUtils.copyProperties(mainDO,transferreceiptJobMainDO);
// DBT——>DBT3("TransferReceiptJob")
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferReceiptJob");
transferreceiptJobMainDO.setBusinessType(businesstypeDO.getCode());
// Setting——>QJobS("TransferReceiptJob")
JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("TransferReceiptJob");
transferreceiptJobMainDO.setRequestNumber(mainDO.getNumber());
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_JOB.getCode());
transferreceiptJobMainDO.setRequestDueTime(mainDO.getDueTime());
transferreceiptJobMainDO.setNumber(number);
transferreceiptJobMainDO.setId(null);
transferreceiptJobMainDO.setCreateTime(null);
transferreceiptJobMainDO.setCreator(userApi.getUser(getLoginUserId()).getId().toString());
transferreceiptJobMainDO.setUpdateTime(null);
transferreceiptJobMainDO.setUpdater(null);
transferreceiptJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete());
transferreceiptJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation());
transferreceiptJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty());
transferreceiptJobMainDO.setAllowBiggerQty(jobsettingDO.getAllowBiggerQty());
transferreceiptJobMainDO.setAllowSmallerQty(jobsettingDO.getAllowSmallerQty());
transferreceiptJobMainDO.setAllowModifyInventoryStatus(jobsettingDO.getAllowModifyInventoryStatus());
transferreceiptJobMainDO.setAllowContinuousScanning(jobsettingDO.getAllowContinuousScanning());
transferreceiptJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete());
transferreceiptJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber());
transferreceiptJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach());
transferreceiptJobMainDO.setStatus(JobStatusEnum.PENDING.getCode());
transferreceiptJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses());//入库库存状态范围
transferreceiptJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses());//出库库存状态范围
transferreceiptJobMainMapper.insert(transferreceiptJobMainDO);
// 任务 子表数据创建
List<ExpectinCreateReqVO> expectinCreateReqVOList = new ArrayList<>();
List<TransferreceiptJobDetailDO> transferreceiptJobDetailDOList = new ArrayList<>();
for(TransferreceiptRequestDetailDO transferreceiptRequestDetailDO:detailDOList){
TransferreceiptJobDetailDO transferreceiptJobDetailDO = TransferreceiptJobDetailConvert.INSTANCE.convert(transferreceiptRequestDetailDO);
BeanUtils.copyProperties(transferreceiptRequestDetailDO, transferreceiptJobDetailDO);
transferreceiptJobDetailDO.setId(null);
transferreceiptJobDetailDO.setCreator(userApi.getUser(getLoginUserId()).getId().toString());
transferreceiptJobDetailDO.setCreateTime(null);
transferreceiptJobDetailDO.setUpdater(null);
transferreceiptJobDetailDO.setUpdateTime(null);
transferreceiptJobDetailDO.setMasterId(transferreceiptJobMainDO.getId());
transferreceiptJobDetailDO.setNumber(number);
transferreceiptJobDetailDOList.add(transferreceiptJobDetailDO);
//预计出
ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO();
BeanUtils.copyProperties(transferreceiptRequestDetailDO, expectinCreateReqVO);
expectinCreateReqVO.setJobNumber(number);
expectinCreateReqVO.setBusinessType(transferreceiptJobMainDO.getBusinessType());
expectinCreateReqVO.setLocationCode(transferreceiptRequestDetailDO.getFromLocationCode());
expectinCreateReqVO.setOwnerCode(transferreceiptRequestDetailDO.getFromOwnerCode());
expectinCreateReqVO.setQty(transferreceiptRequestDetailDO.getQty());
expectinCreateReqVOList.add(expectinCreateReqVO);
}
if(transferreceiptJobDetailDOList.size() > 0){
transferreceiptJobDetailMapper.insertBatch(transferreceiptJobDetailDOList);
}
//增加预计入
expectinService.createExpectin(expectinCreateReqVOList);
trendsApi.createTrends(transferreceiptJobMainDO.getId(), "TransferReceiptJob", "调拨入库申请生成调拨入库任务", TrendsTypeEnum.CREATE);
}
private TransferreceiptRequestMainDO validatorToCreate(TransferreceiptRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
// DBT——>DBT3("TransferReceiptRequest")
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferReceiptRequest");
TransferreceiptRequestMainDO transferreceiptRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO);
List<TransferreceiptRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<TransferreceiptRequestDetailDO> subDOList = TransferreceiptRequestDetailConvert.INSTANCE.convertList03(subList);
for(TransferreceiptRequestDetailDO transferreceiptRequestDetailDO: subDOList){
// 校验业务类型
validateDetailMethod(transferreceiptRequestDetailDO,businesstypeDO,transferreceiptRequestMainDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_RECEIPT_REQUEST.getCode());
transferreceiptRequestMainDO.setNumber(number);
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute());
transferreceiptRequestMainDO.setStatus(requestStatusState.getState().getCode());
transferreceiptRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit());
transferreceiptRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree());
transferreceiptRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute());
transferreceiptRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
// 设置部门
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
transferreceiptRequestMainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId()));
transferreceiptRequestMainDO.setStatus(requestStatusState.getState().getCode());
transferreceiptRequestMainMapper.insert(transferreceiptRequestMainDO);
for(TransferreceiptRequestDetailDO transferreceiptRequestDetailDO: subDOList){
transferreceiptRequestDetailDO.setMasterId(transferreceiptRequestMainDO.getId());
transferreceiptRequestDetailDO.setNumber(transferreceiptRequestMainDO.getNumber());
}
transferreceiptRequestDetailMapper.insertBatch(subDOList);
return transferreceiptRequestMainDO;
}
private void validateDetailMethod(TransferreceiptRequestDetailDO transferreceiptRequestDetailDO, BusinesstypeDO businesstypeDO, TransferreceiptRequestMainDO transferreceiptRequestMainDO) {
transferreceiptRequestDetailDO.setCreateTime(LocalDateTime.now());
// BQ——>QL 校验来源/目标库位基础信息
LocationDO tolocationDO = validatorLocation(transferreceiptRequestDetailDO.getToLocationCode());
if(tolocationDO == null){
throw exception(TRANSFERRECEIPT_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS, transferreceiptRequestDetailDO.getToLocationCode());
}
LocationDO fromlocationDO = validatorLocation(transferreceiptRequestDetailDO.getFromLocationCode());
if(fromlocationDO == null){
throw exception(TRANSFERRECEIPT_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS, transferreceiptRequestDetailDO.getFromLocationCode());
}
// BQ----QI 校验物品基础信息
ItembasicDO item = validatorItembasic(transferreceiptRequestDetailDO.getItemCode());
if(item == null){
throw exception(TRANSFERRECEIPT_REQUEST_DETAIL_ITEM_NOT_EXISTS, transferreceiptRequestDetailDO.getItemCode());
}
transferreceiptRequestDetailDO.setItemDesc1(item.getDesc1());
transferreceiptRequestDetailDO.setItemDesc2(item.getDesc2());
transferreceiptRequestDetailDO.setItemName(item.getName());
transferreceiptRequestDetailDO.setUom(item.getUom());
transferreceiptRequestDetailDO.setProjectCode(item.getProject());
// DBT——>DBT2——>LO 校验来源库位
jobUtils.ifInToLocationType(transferreceiptRequestDetailDO.getFromLocationCode(), businesstypeDO);
// DBT——>DBT2——>LO 校验目标库位
jobUtils.ifInToLocationType(transferreceiptRequestDetailDO.getToLocationCode(), businesstypeDO);
// DBT——>DBT2——>SO 校验库存状态
jobUtils.ifOutInventoryStatuses(transferreceiptRequestDetailDO.getInventoryStatus(), businesstypeDO);
// TB——>TB1 校验库存余额是否存在
List<BalanceDO> balance = validatebalance(transferreceiptRequestDetailDO);
for(BalanceDO balancedo: balance ) {
transferreceiptRequestMainDO.setFromWarehouseCode(balancedo.getWarehouseCode());
}
transferreceiptRequestMainDO.setBusinessType(businesstypeDO.getCode());
transferreceiptRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
transferreceiptRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes());
transferreceiptRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
transferreceiptRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes());
}
private List<BalanceDO> validatebalance(TransferreceiptRequestDetailDO detailDo) {
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add(detailDo.getInventoryStatus());
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getToLocationCode(), inventoryStatus);
return balanceDO;
}
private LocationDO validatorLocation(String Location){
return locationService.selectLocation(Location);
}
private ItembasicDO validatorItembasic(String itemCode) {
return itembasicService.selectItembasic(itemCode);
}
private TransferreceiptRequestMainDO validateMainMethod(TransferreceiptRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
TransferreceiptRequestMainDO transferreceiptRequestMainDO = TransferreceiptRequestMainConvert.INSTANCE.convert(baseVO);
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(transferreceiptRequestMainDO.getAutoCommit(), transferreceiptRequestMainDO.getAutoAgree(), transferreceiptRequestMainDO.getAutoExecute());
transferreceiptRequestMainDO.setStatus(requestStatusState.getState().getCode());
transferreceiptRequestMainDO.setRequestTime(LocalDateTime.now());
transferreceiptRequestMainDO.setCreateTime(LocalDateTime.now());
// validordurtime(transferreceiptRequestMainDO.getDueTime());
transferreceiptRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree());
transferreceiptRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit());
transferreceiptRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute());
transferreceiptRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
transferreceiptRequestMainDO.setBusinessType(businesstypeDO.getCode());
transferreceiptRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
transferreceiptRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes());
transferreceiptRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
transferreceiptRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes());
return transferreceiptRequestMainDO;
}
private void validordurtime(LocalDateTime dueTime) {
if(!dueTime.isAfter(LocalDateTime.now())){
throw exception(TIME_AFTER,LocalDateTime.now(),dueTime);
}
}
@Override
@ -48,13 +361,34 @@ public class TransferreceiptRequestMainServiceImpl implements TransferreceiptReq
@Override
public void updateTransferreceiptRequestMain(TransferreceiptRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferReceiptRequest");
// 校验存在
validateTransferreceiptRequestMainExists(updateReqVO.getId());
// 更新
TransferreceiptRequestMainDO updateObj = TransferreceiptRequestMainConvert.INSTANCE.convert(updateReqVO);
transferreceiptRequestMainMapper.updateById(updateObj);
TransferreceiptRequestMainDO transferreceiptRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
if(RequestStatusEnum.HANDLING.getCode().equals(transferreceiptRequestMainDO.getStatus())) {
List<TransferreceiptRequestDetailDO> detailDOList = transferreceiptRequestDetailMapper.selectList(transferreceiptRequestMainDO.getId());
this.generateJob(transferreceiptRequestMainDO,detailDOList);
}
trendsApi.createTrends(requestsettingDO.getId(), "TransferReceiptRequest", "增加了调拨入库申请", TrendsTypeEnum.CREATE);
}
public TransferreceiptRequestMainDO validatorToUpdate(TransferreceiptRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferReceiptRequest");
TransferreceiptRequestMainDO transferissueRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<TransferreceiptRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
if(!subList.isEmpty()) {
List<TransferreceiptRequestDetailDO> subDOList = TransferreceiptRequestDetailConvert.INSTANCE.convertList05(subList);
for (TransferreceiptRequestDetailDO transferreceiptRequestDetailDO : subDOList) {
validateDetailMethod(transferreceiptRequestDetailDO, businesstypeDO, transferissueRequestMainDO);
}
transferreceiptRequestDetailMapper.updateBatch(subDOList);
}
transferreceiptRequestMainMapper.updateById(transferissueRequestMainDO);
return transferissueRequestMainDO;
}
@Override
public void deleteTransferreceiptRequestMain(Long id) {
// 校验存在
@ -63,10 +397,12 @@ public class TransferreceiptRequestMainServiceImpl implements TransferreceiptReq
transferreceiptRequestMainMapper.deleteById(id);
}
private void validateTransferreceiptRequestMainExists(Long id) {
if (transferreceiptRequestMainMapper.selectById(id) == null) {
private TransferreceiptRequestMainDO validateTransferreceiptRequestMainExists(Long id) {
TransferreceiptRequestMainDO transferreceiptRequestMainDO = transferreceiptRequestMainMapper.selectById(id);
if (transferreceiptRequestMainDO == null) {
throw exception(TRANSFERRECEIPT_REQUEST_MAIN_NOT_EXISTS);
}
return transferreceiptRequestMainDO;
}
@Override
@ -89,4 +425,113 @@ public class TransferreceiptRequestMainServiceImpl implements TransferreceiptReq
return transferreceiptRequestMainMapper.selectList(exportReqVO);
}
@Transactional
@Override
public Integer closeTransferreceiptRequestMain(Long id) {
// 校验存在存在下级单据
TransferreceiptRequestMainDO mainDO = validateTransferreceiptRequestMainExists(id);
Long count = transferreceiptJobMainMapper.selectByRequestNumber(mainDO.getNumber());
if(count > 0) {
throw new ServiceException(TRANSFERRECEIPT_JOB_MAIN_EXISTS);
}
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.close();
if(!flag) {
throw new ServiceException(TRANSFERRECEIPT_REQUEST_CANNOT_CLOSE);
}
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "TransferReceiptRequest", "关闭了调拨入库申请", TrendsTypeEnum.UPDATE);
return transferreceiptRequestMainMapper.updateById(mainDO);
}
@Transactional
@Override
public Integer reAddTransferreceiptRequestMain(Long id) {
// 校验存在存在下级单据
TransferreceiptRequestMainDO mainDO = validateTransferreceiptRequestMainExists(id);
Long count = transferreceiptJobMainMapper.selectByRequestNumber(mainDO.getNumber());
if(count > 0) {
throw new ServiceException(TRANSFERRECEIPT_JOB_MAIN_EXISTS);
}
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.reAdd();
if(!flag) {
throw new ServiceException(TRANSFERRECEIPT_REQUEST_CANNOT_RE_ADD);
}
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "TransferReceiptRequest", "打开了调拨入库申请", TrendsTypeEnum.UPDATE);
return transferreceiptRequestMainMapper.updateById(mainDO);
}
@Transactional
@Override
public Integer submitTransferreceiptRequestMain(Long id) {
TransferreceiptRequestMainDO mainDO = validateTransferreceiptRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute());
if(!flag) {
throw new ServiceException(TRANSFERRECEIPT_REQUEST_CANNOT_SUBMIT);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
List<TransferreceiptRequestDetailDO> detailDOList = transferreceiptRequestDetailMapper.selectList(mainDO.getId());
this.generateJob(mainDO, detailDOList);
}
trendsApi.createTrends(id, "TransferReceiptRequest", "提交了调拨入库申请", TrendsTypeEnum.UPDATE);
return transferreceiptRequestMainMapper.updateById(mainDO);
}
@Transactional
@Override
public Integer abortTransferreceiptRequestMain(Long id) {
// 校验存在
TransferreceiptRequestMainDO mainDO = validateTransferreceiptRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.refused();
if(!flag) {
throw new ServiceException(TRANSFERRECEIPT_REQUEST_CANNOT_ABORT);
}
mainDO.setStatus(requestStatusState.getState().getCode());
trendsApi.createTrends(id, "TransferReceiptRequest", "审批拒绝了调拨入库申请", TrendsTypeEnum.UPDATE);
return transferreceiptRequestMainMapper.updateById(mainDO);
}
@Transactional
@Override
public Integer agreeTransferreceiptRequestMain(Long id) {
// 校验存在
TransferreceiptRequestMainDO mainDO = validateTransferreceiptRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.agree(mainDO.getAutoAgree());
if(!flag) {
throw new ServiceException(TRANSFERRECEIPT_REQUEST_CANNOT_AGREE);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
List<TransferreceiptRequestDetailDO> detailDOList = transferreceiptRequestDetailMapper.selectList(mainDO.getId());
this.generateJob(mainDO, detailDOList);
}
trendsApi.createTrends(id, "TransferReceiptRequest", "审批同意了调拨入库申请", TrendsTypeEnum.UPDATE);
return transferreceiptRequestMainMapper.updateById(mainDO);
}
@Transactional
@Override
public Integer handleTransferreceiptRequestMain(Long id) {
// 校验存在
TransferreceiptRequestMainDO mainDO = validateTransferreceiptRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.handle();
if(!flag) {
throw new ServiceException(TRANSFERRECEIPT_REQUEST_CANNOT_HANDLE);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用执行方法
List<TransferreceiptRequestDetailDO> detailDOList = transferreceiptRequestDetailMapper.selectList(mainDO.getId());
this.generateJob(mainDO, detailDOList);
trendsApi.createTrends(id, "TransferReceiptRequest", "执行了调拨入库申请", TrendsTypeEnum.UPDATE);
return transferreceiptRequestMainMapper.updateById(mainDO);
}
}

Loading…
Cancel
Save