From 82c6b36228f757457c4b7e9af4e02c712319ad18 Mon Sep 17 00:00:00 2001 From: zhaoxuebing <1291173720@qq.com> Date: Thu, 7 Dec 2023 19:21:59 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A1=E5=88=92=E5=A4=96=E5=87=BA=E5=BA=93?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/wms/enums/ErrorCodeConstants.java | 11 + .../UnplannedissueJobDetailController.java | 41 +-- .../UnplannedissueJobMainController.java | 76 ++-- .../vo/UnplannedissueJobDetailPageReqVO.java | 3 + .../vo/UnplannedissueJobMainUpdateReqVO.java | 10 +- .../UnplannedissueRecordDetailController.java | 42 +-- .../UnplannedissueRecordMainController.java | 39 +- .../vo/UnplannedissueRecordDetailBaseVO.java | 3 + ...UnplannedissueRecordDetailExportReqVO.java | 3 + .../UnplannedissueRecordDetailPageReqVO.java | 3 + .../vo/UnplannedissueRecordMainBaseVO.java | 2 +- ...UnplannedissueRequestDetailController.java | 42 +-- .../UnplannedissueRequestMainController.java | 108 ++++-- ...nplannedissueRequestDetailExportReqVO.java | 8 +- .../UnplannedissueRequestDetailPageReqVO.java | 3 + .../UnplannedissueJobDetailConvert.java | 2 + .../UnplannedissueJobMainConvert.java | 2 + .../UnplannedissueJobMainDO.java | 8 + .../UnplannedissueJobDetailMapper.java | 6 + .../UnplannedissueJobMainMapper.java | 7 + .../UnplannedissueRecordDetailMapper.java | 2 + .../UnplannedissueRequestDetailMapper.java | 1 + .../TransferissueJobMainServiceImpl.java | 19 +- .../TransferissueRequestMainServiceImpl.java | 30 ++ .../UnplannedissueJobDetailService.java | 7 + .../UnplannedissueJobDetailServiceImpl.java | 6 + .../UnplannedissueJobMainService.java | 30 +- .../UnplannedissueJobMainServiceImpl.java | 225 +++++++++++- .../UnplannedissueRequestMainService.java | 43 ++- .../UnplannedissueRequestMainServiceImpl.java | 347 ++++++++++++++++-- 30 files changed, 920 insertions(+), 209 deletions(-) diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java index 84549d02..526a05d5 100644 --- a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java @@ -894,10 +894,21 @@ public interface ErrorCodeConstants { //计划外出库申请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, "计划外出库申请子不存在"); + ErrorCode UNPLANNEDISSUE_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS = new ErrorCode(1_000_143_002, "库位【{}】无效"); + ErrorCode UNPLANNEDISSUE_REQUEST_DETAIL_BALANCE_NOT_EXISTS = new ErrorCode(1_000_143_003, "库存余额不存在"); + ErrorCode UNPLANNEDISSUE_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_143_004, "计划外出库申请状态不支持关闭"); + ErrorCode UNPLANNEDISSUE_REQUEST_CANNOT_RE_ADD = new ErrorCode(1_000_143_005, "计划外出库申请状态不支持关闭"); + ErrorCode UNPLANNEDISSUE_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_143_006, "计划外出库申请状态不支持提交"); + ErrorCode UNPLANNEDISSUE_REQUEST_CANNOT_ABORT = new ErrorCode(1_000_143_007, "计划外出库申请状态不支持审批拒绝"); + ErrorCode UNPLANNEDISSUE_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_143_008, "计划外出库申请状态不支持审批同意"); + ErrorCode UNPLANNEDISSUE_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_143_009, "计划外出库申请状态不支持处理"); + //计划外出库任务ErrorCode ErrorCode UNPLANNEDISSUE_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_144_000, "计划外出库任务主不存在"); ErrorCode UNPLANNEDISSUE_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_144_001, "计划外出库任务子不存在"); ErrorCode UNPLANNEDISSUE_JOB_MAIN_STATUS_ERROR = new ErrorCode(1_000_144_002, "计划外出库任务状态错误"); + ErrorCode UNPLANNEDISSUE_JOB_MAIN_EXISTS = new ErrorCode(1_000_144_003, "计划外出库任务存在计划外出库任务单"); + //计划外出库记录ErrorCode ErrorCode UNPLANNEDISSUE_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_145_000, "计划外出库记录主不存在"); ErrorCode UNPLANNEDISSUE_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_145_001, "计划外出库记录子不存在"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/UnplannedissueJobDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/UnplannedissueJobDetailController.java index 2be8eca9..a6361715 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/UnplannedissueJobDetailController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/UnplannedissueJobDetailController.java @@ -1,35 +1,32 @@ package com.win.module.wms.controller.unplannedissueJob; +import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; +import com.win.framework.excel.core.util.ExcelUtils; +import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.unplannedissueJob.vo.*; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; +import com.win.module.wms.convert.unplannedissueJob.UnplannedissueJobDetailConvert; +import com.win.module.wms.dal.dataobject.unplannedissueJob.UnplannedissueJobDetailDO; +import com.win.module.wms.service.unplannedissueJob.UnplannedissueJobDetailService; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; +import java.util.Collection; +import java.util.List; -import com.win.framework.common.pojo.PageResult; -import com.win.framework.common.pojo.CommonResult; import static com.win.framework.common.pojo.CommonResult.success; - -import com.win.framework.excel.core.util.ExcelUtils; - -import com.win.framework.operatelog.core.annotations.OperateLog; -import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; - -import com.win.module.wms.controller.unplannedissueJob.vo.*; -import com.win.module.wms.dal.dataobject.unplannedissueJob.UnplannedissueJobDetailDO; -import com.win.module.wms.convert.unplannedissueJob.UnplannedissueJobDetailConvert; -import com.win.module.wms.service.unplannedissueJob.UnplannedissueJobDetailService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 计划外出库任务子") @RestController @@ -39,7 +36,6 @@ public class UnplannedissueJobDetailController { @Resource private UnplannedissueJobDetailService unplannedissueJobDetailService; - @Resource private AdminUserApi userApi; @@ -71,6 +67,7 @@ public class UnplannedissueJobDetailController { } return success(result); } + @DeleteMapping("/delete") @Operation(summary = "删除计划外出库任务子") @Parameter(name = "id", description = "编号", required = true) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/UnplannedissueJobMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/UnplannedissueJobMainController.java index 3821bc23..69a8b4f1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/UnplannedissueJobMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/UnplannedissueJobMainController.java @@ -1,39 +1,38 @@ package com.win.module.wms.controller.unplannedissueJob; +import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; +import com.win.framework.excel.core.util.ExcelUtils; +import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.unplannedissueJob.vo.*; import com.win.module.wms.convert.unplannedissueJob.UnplannedissueJobDetailConvert; +import com.win.module.wms.convert.unplannedissueJob.UnplannedissueJobMainConvert; import com.win.module.wms.dal.dataobject.unplannedissueJob.UnplannedissueJobDetailDO; +import com.win.module.wms.dal.dataobject.unplannedissueJob.UnplannedissueJobMainDO; import com.win.module.wms.service.unplannedissueJob.UnplannedissueJobDetailService; +import com.win.module.wms.service.unplannedissueJob.UnplannedissueJobMainService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; import jodd.util.StringUtil; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; -import com.win.framework.common.pojo.PageResult; -import com.win.framework.common.pojo.CommonResult; import static com.win.framework.common.pojo.CommonResult.success; - -import com.win.framework.excel.core.util.ExcelUtils; - -import com.win.framework.operatelog.core.annotations.OperateLog; -import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; - -import com.win.module.wms.controller.unplannedissueJob.vo.*; -import com.win.module.wms.dal.dataobject.unplannedissueJob.UnplannedissueJobMainDO; -import com.win.module.wms.convert.unplannedissueJob.UnplannedissueJobMainConvert; -import com.win.module.wms.service.unplannedissueJob.UnplannedissueJobMainService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 计划外出库任务主") @RestController @@ -64,6 +63,7 @@ public class UnplannedissueJobMainController { unplannedissueJobMainService.updateUnplannedissueJobMain(updateReqVO); return success(true); } + @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") @PreAuthorize("@ss.hasPermission('wms:itembasic:query')") @@ -77,6 +77,7 @@ public class UnplannedissueJobMainController { } return success(result); } + @DeleteMapping("/delete") @Operation(summary = "删除计划外出库任务主") @Parameter(name = "id", description = "编号", required = true) @@ -162,4 +163,37 @@ public class UnplannedissueJobMainController { return success(countByStatus); } + @PutMapping(value = "/accept") + @Operation(summary = "承接任务") + @PreAuthorize("@ss.hasPermission('wms:unplannedissue-job-main:accept')") + public CommonResult acceptUnplannedissueJobMain(@RequestParam("id") Long id) { + int result = unplannedissueJobMainService.acceptUnplannedissueJobMain(id); + return success(result > 0); + } + + @PutMapping(value = "/abandon") + @Operation(summary = "放弃任务") + @PreAuthorize("@ss.hasPermission('wms:unplannedissue-job-main:abandon')") + public CommonResult abandonUnplannedissueJobMain(@RequestParam("id") Long id) { + int result = unplannedissueJobMainService.abandonUnplannedissueJobMain(id); + return success(result > 0); + } + + @PutMapping(value = "/close") + @Operation(summary = "关闭任务") + @PreAuthorize("@ss.hasPermission('wms:unplannedissue-job-main:close')") + public CommonResult closeUnplannedissueJobMain(@RequestParam("id") Long id) { + int result = unplannedissueJobMainService.closeUnplannedissueJobMain(id); + return success(result > 0); + } + + @PutMapping("/execute") + @Operation(summary = "执行计划外出库任务主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:unplannedissue-job-main:execute')") + public CommonResult executeUnplannedissueJobMain(@Valid @RequestBody UnplannedissueJobMainUpdateReqVO updateReqVO) { + String number = unplannedissueJobMainService.executeUnplannedissueJobMain(updateReqVO); + return success(number); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/vo/UnplannedissueJobDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/vo/UnplannedissueJobDetailPageReqVO.java index e69cde30..4469f511 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/vo/UnplannedissueJobDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/vo/UnplannedissueJobDetailPageReqVO.java @@ -72,4 +72,7 @@ public class UnplannedissueJobDetailPageReqVO extends PageParam { @Schema(description = "创建者Id") private String creator; + @Schema(description = "主键ID") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/vo/UnplannedissueJobMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/vo/UnplannedissueJobMainUpdateReqVO.java index 129e3604..d2274db9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/vo/UnplannedissueJobMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/vo/UnplannedissueJobMainUpdateReqVO.java @@ -1,7 +1,12 @@ package com.win.module.wms.controller.unplannedissueJob.vo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import javax.validation.Valid; +import java.util.List; @Schema(description = "管理后台 - 计划外出库任务主更新 Request VO") @Data @@ -9,4 +14,7 @@ import lombok.*; @ToString(callSuper = true) public class UnplannedissueJobMainUpdateReqVO extends UnplannedissueJobMainBaseVO { + @Schema(description = "子表数据") + private List<@Valid UnplannedissueJobDetailUpdateReqVO> subList; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/UnplannedissueRecordDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/UnplannedissueRecordDetailController.java index 59218b87..fab1d61b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/UnplannedissueRecordDetailController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/UnplannedissueRecordDetailController.java @@ -1,35 +1,32 @@ package com.win.module.wms.controller.unplannedissueRecord; +import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; +import com.win.framework.excel.core.util.ExcelUtils; +import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.unplannedissueRecord.vo.*; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; +import com.win.module.wms.convert.unplannedissueRecord.UnplannedissueRecordDetailConvert; +import com.win.module.wms.dal.dataobject.unplannedissueRecord.UnplannedissueRecordDetailDO; +import com.win.module.wms.service.unplannedissueRecord.UnplannedissueRecordDetailService; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; +import java.util.Collection; +import java.util.List; -import com.win.framework.common.pojo.PageResult; -import com.win.framework.common.pojo.CommonResult; import static com.win.framework.common.pojo.CommonResult.success; - -import com.win.framework.excel.core.util.ExcelUtils; - -import com.win.framework.operatelog.core.annotations.OperateLog; -import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; - -import com.win.module.wms.controller.unplannedissueRecord.vo.*; -import com.win.module.wms.dal.dataobject.unplannedissueRecord.UnplannedissueRecordDetailDO; -import com.win.module.wms.convert.unplannedissueRecord.UnplannedissueRecordDetailConvert; -import com.win.module.wms.service.unplannedissueRecord.UnplannedissueRecordDetailService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 计划外出库记录子") @RestController @@ -39,7 +36,6 @@ public class UnplannedissueRecordDetailController { @Resource private UnplannedissueRecordDetailService unplannedissueRecordDetailService; - @Resource private AdminUserApi userApi; @@ -49,6 +45,7 @@ public class UnplannedissueRecordDetailController { public CommonResult createUnplannedissueRecordDetail(@Valid @RequestBody UnplannedissueRecordDetailCreateReqVO createReqVO) { return success(unplannedissueRecordDetailService.createUnplannedissueRecordDetail(createReqVO)); } + @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") @PreAuthorize("@ss.hasPermission('wms:itembasic:query')") @@ -62,6 +59,7 @@ public class UnplannedissueRecordDetailController { } return success(result); } + @PutMapping("/update") @Operation(summary = "更新计划外出库记录子") @PreAuthorize("@ss.hasPermission('wms:unplannedissue-record-detail:update')") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/UnplannedissueRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/UnplannedissueRecordMainController.java index 483297d8..f3b5764e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/UnplannedissueRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/UnplannedissueRecordMainController.java @@ -1,30 +1,32 @@ package com.win.module.wms.controller.unplannedissueRecord; +import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; +import com.win.framework.excel.core.util.ExcelUtils; +import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.unplannedissueRecord.vo.*; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; +import com.win.module.wms.convert.unplannedissueRecord.UnplannedissueRecordMainConvert; +import com.win.module.wms.dal.dataobject.unplannedissueRecord.UnplannedissueRecordMainDO; +import com.win.module.wms.service.unplannedissueRecord.UnplannedissueRecordMainService; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; -import com.win.framework.common.pojo.PageResult; -import com.win.framework.common.pojo.CommonResult; +import java.util.Collection; +import java.util.List; + import static com.win.framework.common.pojo.CommonResult.success; -import com.win.framework.excel.core.util.ExcelUtils; -import com.win.framework.operatelog.core.annotations.OperateLog; -import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; -import com.win.module.wms.dal.dataobject.unplannedissueRecord.UnplannedissueRecordMainDO; -import com.win.module.wms.convert.unplannedissueRecord.UnplannedissueRecordMainConvert; -import com.win.module.wms.service.unplannedissueRecord.UnplannedissueRecordMainService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 计划外出库记录主") @RestController @@ -34,7 +36,6 @@ public class UnplannedissueRecordMainController { @Resource private UnplannedissueRecordMainService unplannedissueRecordMainService; - @Resource private AdminUserApi userApi; @@ -87,6 +88,7 @@ public class UnplannedissueRecordMainController { PageResult pageResult = unplannedissueRecordMainService.getUnplannedissueRecordMainPage(pageVO); return success(UnplannedissueRecordMainConvert.INSTANCE.convertPage(pageResult)); } + @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") @PreAuthorize("@ss.hasPermission('wms:unplannedissue-record-main:query')") @@ -100,6 +102,7 @@ public class UnplannedissueRecordMainController { } return success(result); } + @GetMapping("/export-excel") @Operation(summary = "导出计划外出库记录主 Excel") @PreAuthorize("@ss.hasPermission('wms:unplannedissue-record-main:export')") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordDetailBaseVO.java index e37ed689..a2ef50f0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordDetailBaseVO.java @@ -105,4 +105,7 @@ public class UnplannedissueRecordDetailBaseVO { @Schema(description = "任务明细ID") private String jobDetailId; + @Schema(description = "主键ID") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordDetailExportReqVO.java index cb666c34..1292f1b6 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordDetailExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordDetailExportReqVO.java @@ -91,4 +91,7 @@ public class UnplannedissueRecordDetailExportReqVO { @Schema(description = "任务明细ID") private String jobDetailId; + @Schema(description = "主键ID") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordDetailPageReqVO.java index b87bbbbe..8b6f6f52 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordDetailPageReqVO.java @@ -93,4 +93,7 @@ public class UnplannedissueRecordDetailPageReqVO extends PageParam { @Schema(description = "任务明细ID") private String jobDetailId; + @Schema(description = "主键ID") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordMainBaseVO.java index 55f8bce8..584dd7fe 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordMainBaseVO.java @@ -84,7 +84,7 @@ public class UnplannedissueRecordMainBaseVO { @Schema(description = "创建者Id", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "创建者Id不能为空") - private String creatorId; + private String creator; @Schema(description = "从仓库代码") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/UnplannedissueRequestDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/UnplannedissueRequestDetailController.java index f3ea7f43..8c7a7a2f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/UnplannedissueRequestDetailController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/UnplannedissueRequestDetailController.java @@ -1,35 +1,32 @@ package com.win.module.wms.controller.unplannedissueRequest; +import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; +import com.win.framework.excel.core.util.ExcelUtils; +import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.unplannedissueRequest.vo.*; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; +import com.win.module.wms.convert.unplannedissueRequest.UnplannedissueRequestDetailConvert; +import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO; +import com.win.module.wms.service.unplannedissueRequest.UnplannedissueRequestDetailService; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; +import java.util.Collection; +import java.util.List; -import com.win.framework.common.pojo.PageResult; -import com.win.framework.common.pojo.CommonResult; import static com.win.framework.common.pojo.CommonResult.success; - -import com.win.framework.excel.core.util.ExcelUtils; - -import com.win.framework.operatelog.core.annotations.OperateLog; -import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; - -import com.win.module.wms.controller.unplannedissueRequest.vo.*; -import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO; -import com.win.module.wms.convert.unplannedissueRequest.UnplannedissueRequestDetailConvert; -import com.win.module.wms.service.unplannedissueRequest.UnplannedissueRequestDetailService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 计划外出库申请子") @RestController @@ -39,7 +36,6 @@ public class UnplannedissueRequestDetailController { @Resource private UnplannedissueRequestDetailService unplannedissueRequestDetailService; - @Resource private AdminUserApi userApi; @@ -84,6 +80,7 @@ public class UnplannedissueRequestDetailController { List list = unplannedissueRequestDetailService.getUnplannedissueRequestDetailList(ids); return success(UnplannedissueRequestDetailConvert.INSTANCE.convertList(list)); } + @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") @PreAuthorize("@ss.hasPermission('wms:unplannedissue-request-detail:query')") @@ -97,6 +94,7 @@ public class UnplannedissueRequestDetailController { } return success(result); } + @GetMapping("/page") @Operation(summary = "获得计划外出库申请子分页") @PreAuthorize("@ss.hasPermission('wms:unplannedissue-request-detail:query')") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/UnplannedissueRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/UnplannedissueRequestMainController.java index 951e7431..d056e6e8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/UnplannedissueRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/UnplannedissueRequestMainController.java @@ -1,50 +1,41 @@ package com.win.module.wms.controller.unplannedissueRequest; +import com.win.framework.common.pojo.CommonResult; 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.excel.core.util.ConvertUtil; +import com.win.framework.excel.core.util.ExcelUtils; +import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; -import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO; -import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO; -import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportVO; import com.win.module.wms.controller.unplannedissueRequest.vo.*; -import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExcelVO; import com.win.module.wms.convert.unplannedissueRequest.UnplannedissueRequestDetailConvert; -import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert; +import com.win.module.wms.convert.unplannedissueRequest.UnplannedissueRequestMainConvert; import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO; -import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; -import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; +import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.unplannedissueRequest.UnplannedissueRequestDetailService; +import com.win.module.wms.service.unplannedissueRequest.UnplannedissueRequestMainService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; -import javax.validation.*; -import javax.servlet.http.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.util.*; -import java.io.IOException; -import com.win.framework.common.pojo.PageResult; -import com.win.framework.common.pojo.CommonResult; import static com.win.framework.common.pojo.CommonResult.success; - -import com.win.framework.excel.core.util.ExcelUtils; - -import com.win.framework.operatelog.core.annotations.OperateLog; -import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; -import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO; -import com.win.module.wms.convert.unplannedissueRequest.UnplannedissueRequestMainConvert; -import com.win.module.wms.service.unplannedissueRequest.UnplannedissueRequestMainService; -import org.springframework.web.multipart.MultipartFile; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 计划外出库申请主") @RestController @@ -54,10 +45,8 @@ public class UnplannedissueRequestMainController { @Resource private UnplannedissueRequestMainService unplannedissueRequestMainService; - @Resource private UnplannedissueRequestDetailService unplannedissueRequestDetailService; - @Resource private AdminUserApi userApi; @@ -152,9 +141,6 @@ public class UnplannedissueRequestMainController { ExcelUtils.write(response, "计划外出库申请主.xlsx", "计划外出库申请数据", UnplannedissueRequestMainExcelVO.class, resultList, mapDropDown); } - - - private List getExcelVo(List list, Map mapDropDown) { String[] fromInventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); mapDropDown.put(22, fromInventoryStatus); @@ -174,11 +160,6 @@ public class UnplannedissueRequestMainController { return resultList; } - - - - - @GetMapping("/getUnplannedissueRequestById") @Operation(summary = "APP获得计划外出库申请主子表明细列表") @Parameter(name = "id", description = "编号", required = true, example = "1024") @@ -236,5 +217,58 @@ public class UnplannedissueRequestMainController { return success(returnMap); } + @PutMapping("/close") + @Operation(summary = "关闭计划外出库申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:unplannedissue-request-main:close')") + public CommonResult closeUnplannedissueRequestMain(@RequestParam("id") Long id) { + Integer count = unplannedissueRequestMainService.closeUnplannedissueRequestMain(id); + return success(count > 0); + } + + @PutMapping("/reAdd") + @Operation(summary = "重新添加计划外出库申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:unplannedissue-request-main:reAdd')") + public CommonResult reAddUnplannedissueRequestMain(@RequestParam("id") Long id) { + Integer count = unplannedissueRequestMainService.reAddUnplannedissueRequestMain(id); + return success(count > 0); + } + + @PutMapping("/submit") + @Operation(summary = "提交计划外出库申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:unplannedissue-request-main:submit')") + public CommonResult submitUnplannedissueRequestMain(@RequestParam("id") Long id) { + Integer count = unplannedissueRequestMainService.submitUnplannedissueRequestMain(id); + return success(count > 0); + } + + @PutMapping("/refused") + @Operation(summary = "审批拒绝计划外出库申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:unplannedissue-request-main:refused')") + public CommonResult abortUnplannedissueRequestMain(@RequestParam("id") Long id) { + Integer count = unplannedissueRequestMainService.abortUnplannedissueRequestMain(id); + return success(count > 0); + } + + @PutMapping("/agree") + @Operation(summary = "审批通过计划外出库申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:unplannedissue-request-main:agree')") + public CommonResult agreeUnplannedissueRequestMain(@RequestParam("id") Long id) { + Integer count = unplannedissueRequestMainService.agreeUnplannedissueRequestMain(id); + return success(count > 0); + } + + @PutMapping("/handle") + @Operation(summary = "处理计划外出库申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:unplannedissue-request-main:handle')") + public CommonResult handleUnplannedissueRequestMain(@RequestParam("id") Long id) { + Integer count = unplannedissueRequestMainService.handleUnplannedissueRequestMain(id); + return success(count > 0); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestDetailExportReqVO.java index aa276418..0fb3bbe0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestDetailExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestDetailExportReqVO.java @@ -1,13 +1,11 @@ package com.win.module.wms.controller.unplannedissueRequest.vo; -import lombok.*; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; -import com.win.framework.common.pojo.PageParam; import java.time.LocalDateTime; -import org.springframework.format.annotation.DateTimeFormat; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestDetailPageReqVO.java index 775e64a5..f01c9db5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestDetailPageReqVO.java @@ -79,4 +79,7 @@ public class UnplannedissueRequestDetailPageReqVO extends PageParam { @Schema(description = "最后更新者用户名") private String updater; + @Schema(description = "主键ID") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueJob/UnplannedissueJobDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueJob/UnplannedissueJobDetailConvert.java index 7dee54cc..48bde786 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueJob/UnplannedissueJobDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueJob/UnplannedissueJobDetailConvert.java @@ -8,6 +8,7 @@ import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobDetai import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobDetailExcelVO; import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobDetailRespVO; import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.unplannedissueJob.UnplannedissueJobDetailDO; @@ -34,4 +35,5 @@ public interface UnplannedissueJobDetailConvert { List convertList02(List list); + UnplannedissueJobDetailDO convert(UnplannedissueRequestDetailDO unplannedissueRequestDetailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueJob/UnplannedissueJobMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueJob/UnplannedissueJobMainConvert.java index 22708929..31ad7a6c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueJob/UnplannedissueJobMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueJob/UnplannedissueJobMainConvert.java @@ -8,6 +8,7 @@ import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobMainC import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobMainExcelVO; import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobMainRespVO; import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobMainUpdateReqVO; +import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestMainDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.unplannedissueJob.UnplannedissueJobMainDO; @@ -34,4 +35,5 @@ public interface UnplannedissueJobMainConvert { List convertList02(List list); + UnplannedissueJobMainDO convert(UnplannedissueRequestMainDO mainDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedissueJob/UnplannedissueJobMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedissueJob/UnplannedissueJobMainDO.java index 360daadc..2d5b7c60 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedissueJob/UnplannedissueJobMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedissueJob/UnplannedissueJobMainDO.java @@ -195,5 +195,13 @@ public class UnplannedissueJobMainDO extends BaseDO { * 允许修改箱码 */ private String allowModifyPackingNumber; + /** + * 入库库存状态范围 + */ + private String inInventoryStatuses; + /** + * 出库库存状态范围 + */ + private String outInventoryStatuses; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueJob/UnplannedissueJobDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueJob/UnplannedissueJobDetailMapper.java index 8cf0299d..1f725114 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueJob/UnplannedissueJobDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueJob/UnplannedissueJobDetailMapper.java @@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobDetailExportReqVO; import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobDetailPageReqVO; +import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobDetailDO; import com.win.module.wms.dal.dataobject.unplannedissueJob.UnplannedissueJobDetailDO; import org.apache.ibatis.annotations.Mapper; @@ -44,6 +45,7 @@ public interface UnplannedissueJobDetailMapper extends BaseMapperX selectList(Long masterId){ + return selectList(new LambdaQueryWrapperX() + .eq(UnplannedissueJobDetailDO::getMasterId, masterId)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueJob/UnplannedissueJobMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueJob/UnplannedissueJobMainMapper.java index 78daf86e..c3bbf495 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueJob/UnplannedissueJobMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueJob/UnplannedissueJobMainMapper.java @@ -9,8 +9,10 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobMainExportReqVO; import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobMainPageReqVO; +import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobMainDO; import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobMainDO; import com.win.module.wms.dal.dataobject.unplannedissueJob.UnplannedissueJobMainDO; +import com.win.module.wms.enums.order.OrderStatusEnum; import org.apache.ibatis.annotations.Mapper; /** @@ -111,4 +113,9 @@ public interface UnplannedissueJobMainMapper extends BaseMapperX() + .eq(UnplannedissueJobMainDO::getRequestNumber, requestNumber) + .ne(UnplannedissueJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRecord/UnplannedissueRecordDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRecord/UnplannedissueRecordDetailMapper.java index 3615ca6e..190be47a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRecord/UnplannedissueRecordDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRecord/UnplannedissueRecordDetailMapper.java @@ -51,6 +51,7 @@ public interface UnplannedissueRecordDetailMapper extends BaseMapperX reqSubList = updateReqVO.getSubList(); List transferissueRecordDetailDOList = new ArrayList<>(); - List transferreceiptReqSubList = new ArrayList<>(); //库存事务 List transactionCreateReqVOList = new ArrayList<>(); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java index 7a5a45e1..b76a92dc 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java @@ -15,6 +15,8 @@ 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.*; +import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestDetailCreateReqVO; +import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainCreateReqVO; import com.win.module.wms.convert.transferissueJob.TransferissueJobDetailConvert; import com.win.module.wms.convert.transferissueJob.TransferissueJobMainConvert; import com.win.module.wms.convert.transferissueRecord.TransferissueRecordDetailConvert; @@ -47,6 +49,7 @@ 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.service.transferreceiptRequest.TransferreceiptRequestMainService; import com.win.module.wms.util.JobUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; @@ -107,6 +110,9 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest private ExpectinService expectinService; @Resource private RecordsettingService recordsettingService; + @Resource + private TransferreceiptRequestMainService transferreceiptRequestMainService; + @Transactional @Override @@ -591,6 +597,8 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest transferissueRecordMainCreateReqVO.setCreateTime(null); TransferissueRecordMainDO transferissueRecordMainDO = TransferissueRecordMainConvert.INSTANCE.convert(transferissueRecordMainCreateReqVO); transferissueRecordMainMapper.insert(transferissueRecordMainDO); + + List transferreceiptReqSubList = new ArrayList<>(); for(TransferissueRequestDetailDO transferissueRequestDetailDO : detailDOList) { TransferissueRecordDetailCreateReqVO transferissueRecordDetailCreateReqVO = new TransferissueRecordDetailCreateReqVO(); BeanUtils.copyProperties(transferissueRequestDetailDO, transferissueRecordDetailCreateReqVO); @@ -606,7 +614,29 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest transferissueRecordDetailCreateReqVO.setFromLocationGroupCode(transferissueRequestDetailDO.getFromLocationCode()); transferissueRecordDetailCreateReqVO.setFromAreaCode(transferissueRequestDetailDO.getFromLocationCode()); transferissueRecordDetailMapper.insert(TransferissueRecordDetailConvert.INSTANCE.convert(transferissueRecordDetailCreateReqVO)); + + // 调拨入库数据拼装 + TransferreceiptRequestDetailCreateReqVO transferreceiptRequestDetailCreateReqVO = new TransferreceiptRequestDetailCreateReqVO(); + BeanUtils.copyProperties(transferissueRequestDetailDO,transferreceiptRequestDetailCreateReqVO); + transferreceiptRequestDetailCreateReqVO.setToLocationCode(transferissueRequestDetailDO.getToLocationCode()); + transferreceiptRequestDetailCreateReqVO.setFromLocationCode(transferissueRequestDetailDO.getFromLocationCode()); + transferreceiptRequestDetailCreateReqVO.setPackingNumber(transferissueRequestDetailDO.getPackingNumber()); + transferreceiptRequestDetailCreateReqVO.setBatch(transferissueRequestDetailDO.getBatch()); + transferreceiptReqSubList.add(transferreceiptRequestDetailCreateReqVO); + } + //创建调拨入库申请 + TransferreceiptRequestMainCreateReqVO createReqVO = new TransferreceiptRequestMainCreateReqVO(); + BeanUtils.copyProperties(mainDO,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); return; } // 任务 主表数据创建 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobDetailService.java index e7d5a25e..c7da3fb7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobDetailService.java @@ -8,6 +8,7 @@ import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobDetai import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobDetailExportReqVO; import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobDetailPageReqVO; import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobDetailDO; import com.win.module.wms.dal.dataobject.unplannedissueJob.UnplannedissueJobDetailDO; import com.win.framework.common.pojo.PageResult; @@ -79,4 +80,10 @@ public interface UnplannedissueJobDetailService { */ List getUnplannedissueJobDetailList(UnplannedissueJobDetailExportReqVO exportReqVO); + /** + * 获取子表数据 + * @param id + * @return + */ + List selectList(Long id); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobDetailServiceImpl.java index 1087044f..e388be37 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobDetailServiceImpl.java @@ -5,6 +5,7 @@ import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobDetai import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobDetailExportReqVO; import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobDetailPageReqVO; import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobDetailDO; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -88,4 +89,9 @@ public class UnplannedissueJobDetailServiceImpl implements UnplannedissueJobDeta return unplannedissueJobDetailMapper.selectList(exportReqVO); } + @Override + public List selectList(Long masterId) { + return unplannedissueJobDetailMapper.selectList(masterId); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobMainService.java index 0f9a7eec..4bc62be0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobMainService.java @@ -86,7 +86,7 @@ public interface UnplannedissueJobMainService { * @param pstatus 状态 * @return 采购订单主列表 */ - public UnplannedissueJobMainDO unplannedissueJobMainDoStatusRight(String pnumber, String pstatus); + UnplannedissueJobMainDO unplannedissueJobMainDoStatusRight(String pnumber, String pstatus); /** *根据任务状态获取任务数量 @@ -94,4 +94,32 @@ public interface UnplannedissueJobMainService { * @return */ Map getCountByStatus(@Nullable Collection types); + + /** + * 承接任务 + * @param id 计划外出库任务ID + * @return 更新数量 + */ + int acceptUnplannedissueJobMain(Long id); + + /** + * 放弃计划外出库任务 + * @param id 计划外出库任务主ID + * @return 更新数量 + */ + int abandonUnplannedissueJobMain(Long id); + + /** + * 关闭计划外出库任务 + * @param id 计划外出库任务主ID + * @return 更新数量 + */ + int closeUnplannedissueJobMain(Long id); + + /** + * 执行计划外出库任务 + * @param updateReqVO 执行传参 + * @return number + */ + String executeUnplannedissueJobMain(UnplannedissueJobMainUpdateReqVO updateReqVO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobMainServiceImpl.java index a2503701..741064af 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobMainServiceImpl.java @@ -1,24 +1,45 @@ package com.win.module.wms.service.unplannedissueJob; 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.unplannedissueJob.vo.UnplannedissueJobMainCreateReqVO; -import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobMainExportReqVO; -import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobMainPageReqVO; -import com.win.module.wms.controller.unplannedissueJob.vo.UnplannedissueJobMainUpdateReqVO; +import com.win.framework.common.pojo.PageResult; +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.unplannedissueJob.vo.*; +import com.win.module.wms.convert.unplannedissueJob.UnplannedissueJobMainConvert; +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.unplannedissueJob.UnplannedissueJobDetailDO; +import com.win.module.wms.dal.dataobject.unplannedissueJob.UnplannedissueJobMainDO; +import com.win.module.wms.dal.dataobject.unplannedissueRecord.UnplannedissueRecordDetailDO; +import com.win.module.wms.dal.dataobject.unplannedissueRecord.UnplannedissueRecordMainDO; +import com.win.module.wms.dal.mysql.unplannedissueJob.UnplannedissueJobMainMapper; +import com.win.module.wms.dal.mysql.unplannedissueRecord.UnplannedissueRecordDetailMapper; +import com.win.module.wms.dal.mysql.unplannedissueRecord.UnplannedissueRecordMainMapper; +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 javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.*; -import com.win.module.wms.dal.dataobject.unplannedissueJob.UnplannedissueJobMainDO; -import com.win.framework.common.pojo.PageResult; - -import com.win.module.wms.convert.unplannedissueJob.UnplannedissueJobMainConvert; -import com.win.module.wms.dal.mysql.unplannedissueJob.UnplannedissueJobMainMapper; - 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 +53,29 @@ public class UnplannedissueJobMainServiceImpl implements UnplannedissueJobMainSe @Resource private UnplannedissueJobMainMapper unplannedissueJobMainMapper; + @Resource + private AdminUserApi userApi; + @Resource + private TrendsApi trendsApi; + @Resource + private UnplannedissueJobDetailService unplannedissueJobDetailService; + @Resource + private JobUtils jobUtils; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private RecordsettingService recordsettingService; + @Resource + private UnplannedissueRecordMainMapper unplannedissueRecordMainMapper; + @Resource + private LocationService locationService; + @Resource + private UnplannedissueRecordDetailMapper unplannedissueRecordDetailMapper; + @Resource + private TransactionService transactionService; + @Resource + private ExpectinService expectinService; + @Override public Long createUnplannedissueJobMain(UnplannedissueJobMainCreateReqVO createReqVO) { @@ -62,10 +106,12 @@ public class UnplannedissueJobMainServiceImpl implements UnplannedissueJobMainSe unplannedissueJobMainMapper.deleteById(id); } - private void validateUnplannedissueJobMainExists(Long id) { - if (unplannedissueJobMainMapper.selectById(id) == null) { + private UnplannedissueJobMainDO validateUnplannedissueJobMainExists(Long id) { + UnplannedissueJobMainDO unplannedissueJobMainDO = unplannedissueJobMainMapper.selectById(id); + if (unplannedissueJobMainDO == null) { throw exception(UNPLANNEDISSUE_JOB_MAIN_NOT_EXISTS); } + return unplannedissueJobMainDO; } @Override @@ -108,4 +154,157 @@ public class UnplannedissueJobMainServiceImpl implements UnplannedissueJobMainSe map.put("count", l.intValue()); return map; } + + @Transactional + @Override + public int acceptUnplannedissueJobMain(Long id) { + UnplannedissueJobMainDO unplannedissueJobMainDO = this.validateUnplannedissueJobMainExists(id); + JobStatusState jobStatusState = new JobStatusState(unplannedissueJobMainDO.getStatus()); + if(!jobStatusState.accept()) { + throw exception(UNPLANNEDISSUE_JOB_MAIN_STATUS_ERROR); + } + Long userId = getLoginUserId(); + AdminUserRespDTO userRespDTO = userApi.getUser(userId); + unplannedissueJobMainDO.setStatus(jobStatusState.getState().getCode()); + unplannedissueJobMainDO.setAcceptUserId(String.valueOf(userId)); + unplannedissueJobMainDO.setAcceptUserName(userRespDTO.getNickname()); + unplannedissueJobMainDO.setAcceptTime(LocalDateTime.now()); + trendsApi.createTrends(unplannedissueJobMainDO.getId(), "UnplannedDeliverJob", "承接了计划外出库任务", TrendsTypeEnum.UPDATE); + return unplannedissueJobMainMapper.updateById(unplannedissueJobMainDO); + } + + @Transactional + @Override + public int abandonUnplannedissueJobMain(Long id) { + UnplannedissueJobMainDO unplannedissueJobMainDO = this.validateUnplannedissueJobMainExists(id); + JobStatusState jobStatusState = new JobStatusState(unplannedissueJobMainDO.getStatus()); + if(!jobStatusState.cancelAccept()) { + throw exception(UNPLANNEDISSUE_JOB_MAIN_STATUS_ERROR); + } + unplannedissueJobMainDO.setStatus(jobStatusState.getState().getCode()); + unplannedissueJobMainDO.setAcceptUserId(null); + unplannedissueJobMainDO.setAcceptUserName(null); + unplannedissueJobMainDO.setAcceptTime(null); + trendsApi.createTrends(unplannedissueJobMainDO.getId(), "UnplannedDeliverJob", "取消了计划外出库任务", TrendsTypeEnum.UPDATE); + return unplannedissueJobMainMapper.updateById(unplannedissueJobMainDO); + } + + @Transactional + @Override + public int closeUnplannedissueJobMain(Long id) { + UnplannedissueJobMainDO unplannedissueJobMainDO = this.validateUnplannedissueJobMainExists(id); + JobStatusState jobStatusState = new JobStatusState(unplannedissueJobMainDO.getStatus()); + if(!jobStatusState.close()) { + throw exception(UNPLANNEDISSUE_JOB_MAIN_STATUS_ERROR); + } + unplannedissueJobMainDO.setStatus(jobStatusState.getState().getCode()); + trendsApi.createTrends(unplannedissueJobMainDO.getId(), "UnplannedDeliverJob", "关闭了计划外出库任务", TrendsTypeEnum.UPDATE); + return unplannedissueJobMainMapper.updateById(unplannedissueJobMainDO); + } + + @Transactional + @Override + public String executeUnplannedissueJobMain(UnplannedissueJobMainUpdateReqVO updateReqVO) { + // 查询任务主表与子表 + UnplannedissueJobMainDO unplannedissueJobMainDO = this.validateUnplannedissueJobMainExists(updateReqVO.getId()); + List subList = unplannedissueJobDetailService.selectList(unplannedissueJobMainDO.getId()); + JobStatusState jobStatusState = new JobStatusState(unplannedissueJobMainDO.getStatus()); + boolean flag = jobStatusState.execute(); + if(!flag) { + throw new ServiceException(TRANSFERISSUE_JOB_MAIN_STATUS_ERROR); + } + //更新完成信息 + Long userId = getLoginUserId(); + AdminUserRespDTO userRespDTO = userApi.getUser(userId); + unplannedissueJobMainDO.setStatus(jobStatusState.getState().getCode()); + unplannedissueJobMainDO.setCompleteTime(LocalDateTime.now()); + unplannedissueJobMainDO.setCompleteUserId(String.valueOf(userRespDTO.getId())); + unplannedissueJobMainDO.setCompleteUserName(userRespDTO.getNickname()); + //更新任务表状态 + unplannedissueJobMainMapper.updateById(unplannedissueJobMainDO); + + // 创建调拨发出记录 + UnplannedissueRecordMainDO unplannedissueRecordMainDO = new UnplannedissueRecordMainDO(); + BeanUtils.copyProperties(unplannedissueJobMainDO, unplannedissueRecordMainDO); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedDeliverRecord"); + unplannedissueRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + unplannedissueRecordMainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + String number = serialNumberApi.generateCode(RuleCodeEnum.UNPLANNED_DELIVER_RECORD.getCode()); + String interFaceType = recordsettingService.selectRecordsettingExist("UnplannedDeliverRecord").getInterfaceType(); + unplannedissueRecordMainDO.setInterfaceType(interFaceType); + unplannedissueRecordMainDO.setNumber(number); + unplannedissueRecordMainDO.setBusinessType(businesstypeDO.getCode()); + unplannedissueRecordMainDO.setJobNumber(unplannedissueJobMainDO.getNumber()); + unplannedissueRecordMainDO.setExecuteTime(LocalDateTime.now()); + unplannedissueRecordMainDO.setActiveDate(LocalDateTime.now()); + unplannedissueRecordMainDO.setDueTime(unplannedissueJobMainDO.getRequestDueTime()); + unplannedissueRecordMainDO.setAvailable("TRUE"); + unplannedissueRecordMainDO.setId(null); + unplannedissueRecordMainDO.setCreateTime(null); + unplannedissueRecordMainDO.setCreator(null); + unplannedissueRecordMainDO.setUpdateTime(null); + unplannedissueRecordMainDO.setUpdater(null); + unplannedissueRecordMainMapper.insert(unplannedissueRecordMainDO); + // 创建调拨发出记录明细 + List reqSubList = updateReqVO.getSubList(); + List unplannedissueRecordDetailDOList = new ArrayList<>(); + + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); + for(UnplannedissueJobDetailDO unplannedissueJobDetailDO:subList) { + boolean isExists = false; + UnplannedissueJobDetailUpdateReqVO unplannedissueJobDetailUpdateReqVO = null; + for(UnplannedissueJobDetailUpdateReqVO temp:reqSubList) { + if(temp.getId().equals(unplannedissueJobDetailDO.getId())) { + unplannedissueJobDetailUpdateReqVO = temp; + isExists = true; + break; + } + } + if(isExists) { + UnplannedissueRecordDetailDO unplannedissueRecordDetailDO = new UnplannedissueRecordDetailDO(); + BeanUtils.copyProperties(unplannedissueJobDetailUpdateReqVO, unplannedissueRecordDetailDO); + // transferissueRecordDetailDO.setInterfaceType() + unplannedissueRecordDetailDO.setMasterId(String.valueOf(unplannedissueRecordMainDO.getId())); + unplannedissueRecordDetailDO.setNumber(number); + unplannedissueRecordDetailDO.setJobDetailId(String.valueOf(unplannedissueJobDetailDO.getId())); + LocationDO locationDO1 = locationService.selectLocation(unplannedissueJobDetailDO.getFromLocationCode()); + unplannedissueRecordDetailDO.setFromLocationCode(locationDO1.getCode()); + unplannedissueRecordDetailDO.setFromAreaCode(locationDO1.getAreaCode()); + unplannedissueRecordDetailDO.setFromLocationGroupCode(locationDO1.getLocationGroupCode()); + unplannedissueRecordDetailDO.setInventoryStatus(unplannedissueJobDetailDO.getInventoryStatus()); + unplannedissueRecordDetailDO.setQty(unplannedissueJobDetailDO.getQty()); + unplannedissueRecordDetailDOList.add(unplannedissueRecordDetailDO); + + //添加库存事务list + TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); + BeanUtils.copyProperties(unplannedissueJobDetailDO, transactionCreateReqVO); + //增加业务类型 + transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); + transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); + transactionCreateReqVO.setBusinessType(unplannedissueRecordMainDO.getBusinessType()); + transactionCreateReqVO.setLocationCode(unplannedissueJobDetailDO.getFromLocationCode()); + transactionCreateReqVO.setOwnerCode(unplannedissueJobDetailDO.getOwnerCode()); + transactionCreateReqVO.setPackingNumber(unplannedissueJobDetailDO.getPackingNumber()); + transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVO.setBatch(unplannedissueJobDetailDO.getBatch()); + transactionCreateReqVO.setWarehouseCode(unplannedissueRecordMainDO.getFromWarehouseCode()); + transactionCreateReqVO.setRecordNumber(number); + transactionCreateReqVO.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVO); + } + } + if(!unplannedissueRecordDetailDOList.isEmpty()) { + unplannedissueRecordDetailMapper.insertBatch(unplannedissueRecordDetailDOList); + } + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + //移除预计入 + expectinService.deleteExpectinByJobNumber(unplannedissueRecordMainDO.getNumber()); + //变更记录 + trendsApi.createTrends(unplannedissueJobMainDO.getId(), "UnplannedDeliverJob", "执行计划外出库任务", TrendsTypeEnum.UPDATE); + return number; + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainService.java index 7b76ba8e..c7100e5d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainService.java @@ -88,7 +88,7 @@ public interface UnplannedissueRequestMainService { * @param plabel 字典标签 * @return 字典数据信息 */ - public DictDataRespDTO selectLabelExist(String ptype, String plabel); + DictDataRespDTO selectLabelExist(String ptype, String plabel); List selectList(Long masterId); @@ -96,4 +96,45 @@ public interface UnplannedissueRequestMainService { List getUnplannedissueRequestMainList1(CustomConditions conditions); + /** + * 关闭计划外出库申请主 + * @param id 主键ID + * @return 更新数量 + */ + Integer closeUnplannedissueRequestMain(Long id); + + /** + * 重新添加计划外出库申请主 + * @param id 主键ID + * @return 更新数量 + */ + Integer reAddUnplannedissueRequestMain(Long id); + + /** + * 提交计划外出库申请主 + * @param id 主键ID + * @return 更新数量 + */ + Integer submitUnplannedissueRequestMain(Long id); + + /** + * 审批拒绝计划外出库申请主 + * @param id 主键ID + * @return 更新数量 + */ + Integer abortUnplannedissueRequestMain(Long id); + + /** + * 审批通过计划外出库申请主 + * @param id 主键ID + * @return 更新数量 + */ + Integer agreeUnplannedissueRequestMain(Long id); + + /** + * 处理计划外出库申请主 + * @param id 主键ID + * @return 更新数量 + */ + Integer handleUnplannedissueRequestMain(Long id); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainServiceImpl.java index 3e1da3bb..f50519f9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainServiceImpl.java @@ -1,40 +1,78 @@ package com.win.module.wms.service.unplannedissueRequest; import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.system.api.dict.DictDataApi; import com.win.module.system.api.dict.dto.DictDataRespDTO; import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestDetailCreateReqVO; import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO; import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO; +import com.win.module.wms.controller.transferissueRecord.vo.TransferissueRecordDetailCreateReqVO; +import com.win.module.wms.controller.transferissueRecord.vo.TransferissueRecordMainCreateReqVO; +import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestDetailCreateReqVO; +import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainCreateReqVO; +import com.win.module.wms.controller.unplannedissueRecord.vo.UnplannedissueRecordDetailCreateReqVO; +import com.win.module.wms.controller.unplannedissueRecord.vo.UnplannedissueRecordMainCreateReqVO; import com.win.module.wms.controller.unplannedissueRequest.vo.*; import com.win.module.wms.controller.unplannedreceiptRequest.vo.*; import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestDetailConvert; import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert; +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.unplannedissueJob.UnplannedissueJobDetailConvert; +import com.win.module.wms.convert.unplannedissueJob.UnplannedissueJobMainConvert; +import com.win.module.wms.convert.unplannedissueRecord.UnplannedissueRecordDetailConvert; +import com.win.module.wms.convert.unplannedissueRecord.UnplannedissueRecordMainConvert; import com.win.module.wms.convert.unplannedissueRequest.UnplannedissueRequestDetailConvert; import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestDetailConvert; import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert; 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.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.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.unplannedissueJob.UnplannedissueJobDetailDO; +import com.win.module.wms.dal.dataobject.unplannedissueJob.UnplannedissueJobMainDO; +import com.win.module.wms.dal.dataobject.unplannedissueRecord.UnplannedissueRecordDetailDO; +import com.win.module.wms.dal.dataobject.unplannedissueRecord.UnplannedissueRecordMainDO; import com.win.module.wms.dal.dataobject.unplannedissueRequest.UnplannedissueRequestDetailDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; +import com.win.module.wms.dal.mysql.unplannedissueJob.UnplannedissueJobDetailMapper; +import com.win.module.wms.dal.mysql.unplannedissueJob.UnplannedissueJobMainMapper; +import com.win.module.wms.dal.mysql.unplannedissueRecord.UnplannedissueRecordDetailMapper; +import com.win.module.wms.dal.mysql.unplannedissueRecord.UnplannedissueRecordMainMapper; import com.win.module.wms.dal.mysql.unplannedissueRequest.UnplannedissueRequestDetailMapper; +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 lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -51,6 +89,7 @@ import com.win.module.wms.convert.unplannedissueRequest.UnplannedissueRequestMai import com.win.module.wms.dal.mysql.unplannedissueRequest.UnplannedissueRequestMainMapper; 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.*; /** @@ -58,52 +97,168 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*; * * @author 超级管理员 */ +@Slf4j @Service @Validated public class UnplannedissueRequestMainServiceImpl implements UnplannedissueRequestMainService { @Resource private UnplannedissueRequestMainMapper unplannedissueRequestMainMapper; - @Resource private UnplannedissueRequestDetailMapper unplannedissueRequestDetailMapper; @Resource private DictDataApi dictDataApi; - @Resource private LocationService locationService; - @Resource private RequestsettingService requestsettingService; - @Resource private SerialNumberApi serialNumberApi; - @Resource private ItembasicService itembasicService; @Resource private TrendsApi trendsApi; - @Resource private JobUtils jobUtils; + @Resource + private RecordsettingService recordsettingService; + @Resource + private UnplannedissueRecordMainMapper unplannedissueRecordMainMapper; + @Resource + private UnplannedissueRecordDetailMapper unplannedissueRecordDetailMapper; + @Resource + private JobsettingService jobsettingService; + @Resource + private AdminUserApi userApi; + @Resource + private UnplannedissueJobMainMapper unplannedissueJobMainMapper; + @Resource + private ExpectinService expectinService; + @Resource + private UnplannedissueJobDetailMapper unplannedissueJobDetailMapper; + + @Transactional @Override public Long createUnplannedissueRequestMain(UnplannedissueRequestMainCreateReqVO createReqVO) { - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedDeliverRequest"); + // Setting-----QReqs + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedDeliverRequest"); UnplannedissueRequestMainDO unplannedissueRequestMainDO = validatorToCreate(createReqVO,requestsettingDO); //调用自动执行方法 if(RequestStatusEnum.HANDLING.getCode().equals(unplannedissueRequestMainDO.getStatus())) { - + List detailDOList = unplannedissueRequestDetailMapper.selectList(unplannedissueRequestMainDO.getId()); + this.generateJob(unplannedissueRequestMainDO,detailDOList); } trendsApi.createTrends(requestsettingDO.getId(), "UnplannedDeliverRequest", "增加了计划外出库申请", TrendsTypeEnum.CREATE); return unplannedissueRequestMainDO.getId(); } - private UnplannedissueRequestMainDO validatorToCreate(UnplannedissueRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { + public void generateJob(UnplannedissueRequestMainDO mainDO, List detailDOList) { + //跳过任务直接生成记录 + if("TRUE".equals(mainDO.getDirectCreateRecord())) { + UnplannedissueRecordMainCreateReqVO unplannedissueRecordMainCreateReqVO = new UnplannedissueRecordMainCreateReqVO(); + BeanUtils.copyProperties(mainDO, unplannedissueRecordMainCreateReqVO); + unplannedissueRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); + String number = serialNumberApi.generateCode(RuleCodeEnum.UNPLANNED_DELIVER_RECORD.getCode()); + unplannedissueRecordMainCreateReqVO.setNumber(number); + //增加业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedDeliverRecord"); + unplannedissueRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); + unplannedissueRecordMainCreateReqVO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + unplannedissueRecordMainCreateReqVO.setInTransactionType(businesstypeDO.getInTransactionType()); + String interFaceType = recordsettingService.selectRecordsettingExist("UnplannedDeliverRecord").getInterfaceType(); + unplannedissueRecordMainCreateReqVO.setInterfaceType(interFaceType); + unplannedissueRecordMainCreateReqVO.setExecuteTime(LocalDateTime.now()); + unplannedissueRecordMainCreateReqVO.setActiveDate(LocalDateTime.now()); + unplannedissueRecordMainCreateReqVO.setAvailable("TRUE"); + unplannedissueRecordMainCreateReqVO.setDueTime(mainDO.getDueTime()); + unplannedissueRecordMainCreateReqVO.setId(null); + unplannedissueRecordMainCreateReqVO.setCreator(null); + unplannedissueRecordMainCreateReqVO.setCreateTime(null); + UnplannedissueRecordMainDO transferissueRecordMainDO = UnplannedissueRecordMainConvert.INSTANCE.convert(unplannedissueRecordMainCreateReqVO); + unplannedissueRecordMainMapper.insert(transferissueRecordMainDO); + for(UnplannedissueRequestDetailDO unplannedissueRequestDetailDO : detailDOList) { + UnplannedissueRecordDetailCreateReqVO unplannedissueRecordDetailCreateReqVO = new UnplannedissueRecordDetailCreateReqVO(); + BeanUtils.copyProperties(unplannedissueRequestDetailDO, unplannedissueRecordDetailCreateReqVO); + unplannedissueRecordDetailCreateReqVO.setNumber(number); + unplannedissueRecordDetailCreateReqVO.setMasterId(String.valueOf(transferissueRecordMainDO.getId())); + unplannedissueRecordDetailCreateReqVO.setInventoryStatus(unplannedissueRequestDetailDO.getInventoryStatus()); + unplannedissueRecordDetailCreateReqVO.setFromLocationGroupCode(unplannedissueRequestDetailDO.getFromLocationCode()); + unplannedissueRecordDetailCreateReqVO.setFromAreaCode(unplannedissueRequestDetailDO.getFromLocationCode()); + UnplannedissueRecordDetailDO unplannedissueRecordDetailDO = UnplannedissueRecordDetailConvert.INSTANCE.convert(unplannedissueRecordDetailCreateReqVO); + unplannedissueRecordDetailMapper.insert(unplannedissueRecordDetailDO); + } + return; + } + // 任务 主表数据创建 + UnplannedissueJobMainDO unplannedissueJobMainDO = UnplannedissueJobMainConvert.INSTANCE.convert(mainDO); + BeanUtils.copyProperties(mainDO,unplannedissueJobMainDO); + // DBT——>DBT3("TransferDeliverJob") + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedDeliverJob"); + unplannedissueJobMainDO.setBusinessType(businesstypeDO.getCode()); + // Setting——>QJobS("TransferDeliverJob") + JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("UnplannedDeliverJob"); + unplannedissueJobMainDO.setRequestNumber(mainDO.getNumber()); + String number = serialNumberApi.generateCode(RuleCodeEnum.UNPLANNED_DELIVER_JOB.getCode()); + unplannedissueJobMainDO.setRequestDueTime(mainDO.getDueTime()); + unplannedissueJobMainDO.setNumber(number); + unplannedissueJobMainDO.setId(null); + unplannedissueJobMainDO.setCreateTime(null); + unplannedissueJobMainDO.setCreator(userApi.getUser(getLoginUserId()).getId().toString()); + unplannedissueJobMainDO.setUpdateTime(null); + unplannedissueJobMainDO.setUpdater(null); + unplannedissueJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete()); + unplannedissueJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation()); + unplannedissueJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty()); + unplannedissueJobMainDO.setAllowBiggerQty(jobsettingDO.getAllowBiggerQty()); + unplannedissueJobMainDO.setAllowSmallerQty(jobsettingDO.getAllowSmallerQty()); + unplannedissueJobMainDO.setAllowModifyInventoryStatus(jobsettingDO.getAllowModifyInventoryStatus()); + unplannedissueJobMainDO.setAllowContinuousScanning(jobsettingDO.getAllowContinuousScanning()); + unplannedissueJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete()); + unplannedissueJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber()); + unplannedissueJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach()); + unplannedissueJobMainDO.setStatus(JobStatusEnum.PENDING.getCode()); + unplannedissueJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses());//入库库存状态范围 + unplannedissueJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses());//出库库存状态范围 + unplannedissueJobMainMapper.insert(unplannedissueJobMainDO); + + // 任务 子表数据创建 + List expectinCreateReqVOList = new ArrayList<>(); + List transferissueJobDetailDOList = new ArrayList<>(); + for(UnplannedissueRequestDetailDO unplannedissueRequestDetailDO:detailDOList){ + UnplannedissueJobDetailDO unplannedissueJobDetailDO = UnplannedissueJobDetailConvert.INSTANCE.convert(unplannedissueRequestDetailDO); + BeanUtils.copyProperties(unplannedissueRequestDetailDO, unplannedissueJobDetailDO); + unplannedissueJobDetailDO.setId(null); + unplannedissueJobDetailDO.setCreator(userApi.getUser(getLoginUserId()).getId().toString()); + unplannedissueJobDetailDO.setCreateTime(null); + unplannedissueJobDetailDO.setUpdater(null); + unplannedissueJobDetailDO.setUpdateTime(null); + unplannedissueJobDetailDO.setMasterId(unplannedissueJobMainDO.getId()); + unplannedissueJobDetailDO.setNumber(number); + transferissueJobDetailDOList.add(unplannedissueJobDetailDO); + //预计出 + ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO(); + BeanUtils.copyProperties(unplannedissueJobDetailDO, expectinCreateReqVO); + expectinCreateReqVO.setJobNumber(number); + expectinCreateReqVO.setBusinessType(unplannedissueJobMainDO.getBusinessType()); + expectinCreateReqVO.setLocationCode(unplannedissueJobDetailDO.getFromLocationCode()); + expectinCreateReqVO.setOwnerCode(unplannedissueJobDetailDO.getOwnerCode()); + expectinCreateReqVO.setQty(unplannedissueJobDetailDO.getQty()); + expectinCreateReqVOList.add(expectinCreateReqVO); + } + unplannedissueJobDetailMapper.insertBatch(transferissueJobDetailDOList); + //增加预计入 + expectinService.createExpectin(expectinCreateReqVOList); + trendsApi.createTrends(unplannedissueJobMainDO.getId(), "UnplannedDeliverJob", "计划外出库申请生成计划外出库任务", TrendsTypeEnum.CREATE); + + } + + public UnplannedissueRequestMainDO validatorToCreate(UnplannedissueRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { + // DBT3 BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedDeliverRequest"); UnplannedissueRequestMainDO unplannedissueRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); List subList = createReqVO.getSubList(); - List subDOList = UnplannedissueRequestDetailConvert.INSTANCE.convertList03(subList); + List subDOList = UnplannedissueRequestDetailConvert.INSTANCE.convertList03(subList); for (UnplannedissueRequestDetailDO unplannedissueRequestDetailDO : subDOList) { validateDetailMethod(unplannedissueRequestDetailDO, businesstypeDO,unplannedissueRequestMainDO); } @@ -111,8 +266,8 @@ public class UnplannedissueRequestMainServiceImpl implements UnplannedissueReque unplannedissueRequestMainDO.setNumber(number); unplannedissueRequestMainMapper.insert(unplannedissueRequestMainDO); for(UnplannedissueRequestDetailDO unplannedreceiptRequestDetailDO: subDOList){ - unplannedreceiptRequestDetailDO.setMasterId(unplannedissueRequestMainDO.getId()); - unplannedreceiptRequestDetailDO.setNumber(unplannedissueRequestMainDO.getNumber()); + unplannedreceiptRequestDetailDO.setMasterId(unplannedissueRequestMainDO.getId()); // masterId + unplannedreceiptRequestDetailDO.setNumber(unplannedissueRequestMainDO.getNumber());// 单据号 } unplannedissueRequestDetailMapper.insertBatch(subDOList); return unplannedissueRequestMainDO; @@ -120,28 +275,43 @@ public class UnplannedissueRequestMainServiceImpl implements UnplannedissueReque private void validateDetailMethod(UnplannedissueRequestDetailDO detailDo, BusinesstypeDO businesstypeDO, UnplannedissueRequestMainDO mainDo) { detailDo.setCreateTime(LocalDateTime.now()); - LocationDO locationDO = validatorLocation(detailDo.getFromLocationCode()); + // BQ-----QL 校验来源库位基础信息 + LocationDO locationDO = validatorLocation(detailDo.getFromLocationCode()); + if(locationDO == null){ + throw exception(UNPLANNEDISSUE_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS, detailDo.getFromLocationCode()); + } + mainDo.setFromWarehouseCode(locationDO.getWarehouseCode()); mainDo.setFromAreaCodes(locationDO.getAreaCode()); mainDo.setFromLocationTypes(locationDO.getCode()); + // BQ——>QI ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); detailDo.setItemDesc1(itembasicDO.getDesc1()); detailDo.setItemDesc2(itembasicDO.getDesc2()); detailDo.setItemName(itembasicDO.getName()); - detailDo.setProjectCode(itembasicDO.getProject()); detailDo.setUom(itembasicDO.getUom()); - jobUtils.ifInToLocationType(detailDo.getFromLocationCode(), businesstypeDO ); - jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO ); - String INVENTORY = detailDo.getInventoryStatus(); - String[] inventory = INVENTORY.split(","); - List inventorystatus = Arrays.asList(inventory); - List balanceDO = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(),detailDo.getPackingNumber(),detailDo.getBatch(), detailDo.getFromLocationCode(),inventorystatus); - for(BalanceDO balance: balanceDO){ - mainDo.setFromWarehouseCode(balance.getWarehouseCode()); + detailDo.setProjectCode(itembasicDO.getProject()); + // DBT——>DBT2——>LO + jobUtils.ifInToLocationType(detailDo.getFromLocationCode(), businesstypeDO); + // DBT——>DBT2——>SO + jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO); + // TB——>TB1 校验库存余额是否存在 + List balanceDOList = validateBlanceDO(detailDo); + if(balanceDOList != null && balanceDOList.size() > 0){ + // BalanceDO balanceDO = balanceDOList.get(0); + // 子表不存在赋值字段字段 + }else { + throw exception(UNPLANNEDISSUE_REQUEST_DETAIL_BALANCE_NOT_EXISTS); } - } - + } + private List validateBlanceDO(UnplannedissueRequestDetailDO detailDo) { + String INVENTORY = detailDo.getInventoryStatus(); + String[] inventory = INVENTORY.split(","); + List inventorystatus = Arrays.asList(inventory); + List balanceDO = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(),inventorystatus); + return balanceDO; + } private UnplannedissueRequestMainDO validateMainMethod(UnplannedissueRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ UnplannedissueRequestMainDO mainDo = UnplannedissueRequestMainConvert.INSTANCE.convert(baseVO); @@ -157,6 +327,7 @@ public class UnplannedissueRequestMainServiceImpl implements UnplannedissueReque } + @Transactional @Override public void updateUnplannedissueRequestMain(UnplannedissueRequestMainUpdateReqVO updateReqVO) { RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedDeliverRequest"); @@ -165,10 +336,12 @@ public class UnplannedissueRequestMainServiceImpl implements UnplannedissueReque // 更新 UnplannedissueRequestMainDO unplannedissueRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); if(RequestStatusEnum.HANDLING.getCode().equals(unplannedissueRequestMainDO.getStatus())) { - + List detailDOList = unplannedissueRequestDetailMapper.selectList(unplannedissueRequestMainDO.getId()); + this.generateJob(unplannedissueRequestMainDO,detailDOList); } - trendsApi.createTrends(requestsettingDO.getId(), "TransferDeliverRequest", "增加了计划外出库申请", TrendsTypeEnum.CREATE); + trendsApi.createTrends(requestsettingDO.getId(), "UnplannedDeliverRequest", "增加了计划外出库申请", TrendsTypeEnum.CREATE); } + private UnplannedissueRequestMainDO validatorToUpdate(UnplannedissueRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedDeliverRequest"); UnplannedissueRequestMainDO unplannedissueRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); @@ -199,10 +372,12 @@ public class UnplannedissueRequestMainServiceImpl implements UnplannedissueReque unplannedissueRequestMainMapper.deleteById(id); } - private void validateUnplannedissueRequestMainExists(Long id) { - if (unplannedissueRequestMainMapper.selectById(id) == null) { + private UnplannedissueRequestMainDO validateUnplannedissueRequestMainExists(Long id) { + UnplannedissueRequestMainDO unplannedissueRequestMainDO = unplannedissueRequestMainMapper.selectById(id); + if (unplannedissueRequestMainDO == null) { throw exception(UNPLANNEDISSUE_REQUEST_MAIN_NOT_EXISTS); } + return unplannedissueRequestMainDO; } @Override @@ -235,6 +410,116 @@ public class UnplannedissueRequestMainServiceImpl implements UnplannedissueReque return unplannedissueRequestMainMapper.selectSeniorList(conditions); } + @Transactional + @Override + public Integer closeUnplannedissueRequestMain(Long id) { + // 校验存在存在下级单据 + UnplannedissueRequestMainDO mainDO = this.validateUnplannedissueRequestMainExists(id); + Long count = unplannedissueJobMainMapper.selectByRequestNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(UNPLANNEDISSUE_JOB_MAIN_EXISTS); + } + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.close(); + if(!flag) { + throw new ServiceException(UNPLANNEDISSUE_REQUEST_CANNOT_CLOSE); + } + mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "UnplannedDeliverRequest", "关闭了计划外出库申请", TrendsTypeEnum.UPDATE); + return unplannedissueRequestMainMapper.updateById(mainDO); + } + + @Transactional + @Override + public Integer reAddUnplannedissueRequestMain(Long id) { + // 校验存在存在下级单据 + UnplannedissueRequestMainDO mainDO = this.validateUnplannedissueRequestMainExists(id); + Long count = unplannedissueJobMainMapper.selectByRequestNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(UNPLANNEDISSUE_JOB_MAIN_EXISTS); + } + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.reAdd(); + if(!flag) { + throw new ServiceException(UNPLANNEDISSUE_REQUEST_CANNOT_RE_ADD); + } + mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(mainDO.getId(), "UnplannedDeliverRequest", "打开了计划外出库申请", TrendsTypeEnum.UPDATE); + return unplannedissueRequestMainMapper.updateById(mainDO); + } + + @Transactional + @Override + public Integer submitUnplannedissueRequestMain(Long id) { + UnplannedissueRequestMainDO mainDO = this.validateUnplannedissueRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); + if(!flag) { + throw new ServiceException(UNPLANNEDISSUE_REQUEST_CANNOT_SUBMIT); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + List detailDOList = unplannedissueRequestDetailMapper.selectList(mainDO.getId()); + this.generateJob(mainDO,detailDOList); + } + trendsApi.createTrends(id, "UnplannedDeliverRequest", "提交了计划外出库申请", TrendsTypeEnum.UPDATE); + return unplannedissueRequestMainMapper.updateById(mainDO); + } + + @Transactional + @Override + public Integer abortUnplannedissueRequestMain(Long id) { + // 校验存在 + UnplannedissueRequestMainDO mainDO = this.validateUnplannedissueRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.refused(); + if(!flag) { + throw new ServiceException(UNPLANNEDISSUE_REQUEST_CANNOT_ABORT); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + trendsApi.createTrends(id, "UnplannedDeliverRequest", "审批拒绝了计划外出库申请", TrendsTypeEnum.UPDATE); + return unplannedissueRequestMainMapper.updateById(mainDO); + } + + @Transactional + @Override + public Integer agreeUnplannedissueRequestMain(Long id) { + // 校验存在 + UnplannedissueRequestMainDO mainDO = this.validateUnplannedissueRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.agree(mainDO.getAutoAgree()); + if(!flag) { + throw new ServiceException(UNPLANNEDISSUE_REQUEST_CANNOT_AGREE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + List detailDOList = unplannedissueRequestDetailMapper.selectList(mainDO.getId()); + this.generateJob(mainDO,detailDOList); + } + trendsApi.createTrends(mainDO.getId(), "UnplannedDeliverRequest", "审批同意了计划外出库申请", TrendsTypeEnum.UPDATE); + return unplannedissueRequestMainMapper.updateById(mainDO); + } + + @Transactional + @Override + public Integer handleUnplannedissueRequestMain(Long id) { + // 校验存在 + UnplannedissueRequestMainDO mainDO = this.validateUnplannedissueRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.handle(); + if(!flag) { + throw new ServiceException(UNPLANNEDISSUE_REQUEST_CANNOT_HANDLE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用执行方法 + List detailDOList = unplannedissueRequestDetailMapper.selectList(mainDO.getId()); + this.generateJob(mainDO,detailDOList); + trendsApi.createTrends(id, "UnplannedDeliverRequest", "执行了计划外出库申请", TrendsTypeEnum.UPDATE); + return unplannedissueRequestMainMapper.updateById(mainDO); + } + private String validateUnplannedissueRequestMainImport(UnplannedissueRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { StringBuilder message = new StringBuilder(); mainDo.setRequestTime(LocalDateTime.now()); @@ -316,13 +601,9 @@ public class UnplannedissueRequestMainServiceImpl implements UnplannedissueReque return message.toString(); } - - - - @Override @Transactional - public List importUnplannedissueRequestMainList(List datas, Integer mode, boolean updatePart) { + public List importUnplannedissueRequestMainList(List datas, Integer mode, boolean updatePart) { if (CollUtil.isEmpty(datas)) { throw exception(UNPLANNEDISSUE_REQUEST_MAIN_NOT_EXISTS); }