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 3eb859c4..7fa481da 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 @@ -914,13 +914,24 @@ public interface ErrorCodeConstants { //计划外出库记录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, "计划外出库记录子不存在"); + //计划外入库申请ErrorCode ErrorCode UNPLANNEDRECEIPT_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_146_000, "计划外入库申请主不存在"); ErrorCode UNPLANNEDRECEIPT_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_146_001, "计划外入库申请子不存在"); + ErrorCode UNPLANNEDRECEIPT_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS = new ErrorCode(1_000_146_002, "库位【{}】无效"); + ErrorCode UNPLANNEDRECEIPT_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_146_003, "计划外入库申请状态不支持关闭"); + ErrorCode UNPLANNEDRECEIPT_REQUEST_CANNOT_RE_ADD = new ErrorCode(1_000_146_004, "计划外入库申请状态不支持关闭"); + ErrorCode UNPLANNEDRECEIPT_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_146_005, "计划外入库申请状态不支持提交"); + ErrorCode UNPLANNEDRECEIPT_REQUEST_CANNOT_ABORT = new ErrorCode(1_000_146_006, "计划外入库申请状态不支持审批拒绝"); + ErrorCode UNPLANNEDRECEIPT_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_146_007, "计划外入库申请状态不支持审批同意"); + ErrorCode UNPLANNEDRECEIPT_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_146_008, "计划外入库申请状态不支持处理"); + //计划外入库任务ErrorCode ErrorCode UNPLANNEDRECEIPT_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_147_000, "计划外入库任务主不存在"); ErrorCode UNPLANNEDRECEIPT_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_147_001, "计划外入库任务子不存在"); ErrorCode UNPLANNEDRECEIPT_JOB_MAIN_STATUS_ERROR = new ErrorCode(1_000_147_002, "计划外入库任务状态错误"); + ErrorCode UNPLANNEDRECEIPT_JOB_MAIN_EXISTS = new ErrorCode(1_000_147_003, "调拨出库任务存在调拨出库任务单"); + //计划外入库记录ErrorCode ErrorCode UNPLANNEDRECEIPT_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_148_000, "计划外入库记录主不存在"); ErrorCode UNPLANNEDRECEIPT_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_148_001, "计划外入库记录子不存在"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptJob/UnplannedreceiptJobDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptJob/UnplannedreceiptJobDetailController.java index 03862ee8..676cfa65 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptJob/UnplannedreceiptJobDetailController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptJob/UnplannedreceiptJobDetailController.java @@ -1,29 +1,32 @@ package com.win.module.wms.controller.unplannedreceiptJob; +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.unplannedreceiptJob.vo.*; +import com.win.module.wms.convert.unplannedreceiptJob.UnplannedreceiptJobDetailConvert; +import com.win.module.wms.dal.dataobject.unplannedreceiptJob.UnplannedreceiptJobDetailDO; +import com.win.module.wms.service.unplannedreceiptJob.UnplannedreceiptJobDetailService; +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.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 javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +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.unplannedreceiptJob.UnplannedreceiptJobDetailDO; -import com.win.module.wms.convert.unplannedreceiptJob.UnplannedreceiptJobDetailConvert; -import com.win.module.wms.service.unplannedreceiptJob.UnplannedreceiptJobDetailService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 计划外入库任务子") @RestController @@ -33,7 +36,6 @@ public class UnplannedreceiptJobDetailController { @Resource private UnplannedreceiptJobDetailService unplannedreceiptJobDetailService; - @Resource private AdminUserApi userApi; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptJob/UnplannedreceiptJobMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptJob/UnplannedreceiptJobMainController.java index 1a87b1a2..316153c0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptJob/UnplannedreceiptJobMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptJob/UnplannedreceiptJobMainController.java @@ -1,32 +1,38 @@ package com.win.module.wms.controller.unplannedreceiptJob; + +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.unplannedreceiptJob.vo.*; import com.win.module.wms.convert.unplannedreceiptJob.UnplannedreceiptJobDetailConvert; +import com.win.module.wms.convert.unplannedreceiptJob.UnplannedreceiptJobMainConvert; import com.win.module.wms.dal.dataobject.unplannedreceiptJob.UnplannedreceiptJobDetailDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptJob.UnplannedreceiptJobMainDO; import com.win.module.wms.service.unplannedreceiptJob.UnplannedreceiptJobDetailService; +import com.win.module.wms.service.unplannedreceiptJob.UnplannedreceiptJobMainService; +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.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; 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 javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +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.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; + 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.unplannedreceiptJob.UnplannedreceiptJobMainDO; -import com.win.module.wms.convert.unplannedreceiptJob.UnplannedreceiptJobMainConvert; -import com.win.module.wms.service.unplannedreceiptJob.UnplannedreceiptJobMainService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 计划外入库任务主") @RestController @@ -36,7 +42,6 @@ public class UnplannedreceiptJobMainController { @Resource private UnplannedreceiptJobMainService unplannedreceiptJobMainService; - @Resource private UnplannedreceiptJobDetailService unplannedreceiptJobDetailService; @@ -155,4 +160,37 @@ public class UnplannedreceiptJobMainController { return success(countByStatus); } + @PutMapping(value = "/accept") + @Operation(summary = "承接任务") + @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-job-main:accept')") + public CommonResult acceptUnplannedreceiptJobMain(@RequestParam("id") Long id) { + int result = unplannedreceiptJobMainService.acceptUnplannedreceiptJobMain(id); + return success(result > 0); + } + + @PutMapping(value = "/abandon") + @Operation(summary = "放弃任务") + @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-job-main:abandon')") + public CommonResult abandonUnplannedreceiptJobMain(@RequestParam("id") Long id) { + int result = unplannedreceiptJobMainService.abandonUnplannedreceiptJobMain(id); + return success(result > 0); + } + + @PutMapping(value = "/close") + @Operation(summary = "关闭任务") + @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-job-main:close')") + public CommonResult closeUnplannedreceiptJobMain(@RequestParam("id") Long id) { + int result = unplannedreceiptJobMainService.closeUnplannedreceiptJobMain(id); + return success(result > 0); + } + + @PutMapping("/execute") + @Operation(summary = "执行计划外入库任务主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-job-main:execute')") + public CommonResult executeUnplannedreceiptJobMain(@Valid @RequestBody UnplannedreceiptJobMainUpdateReqVO updateReqVO) { + String number = unplannedreceiptJobMainService.executeUnplannedreceiptJobMain(updateReqVO); + return success(number); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptJob/vo/UnplannedreceiptJobDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptJob/vo/UnplannedreceiptJobDetailPageReqVO.java index aba362f4..204cd277 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptJob/vo/UnplannedreceiptJobDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptJob/vo/UnplannedreceiptJobDetailPageReqVO.java @@ -87,4 +87,7 @@ public class UnplannedreceiptJobDetailPageReqVO extends PageParam { @Schema(description = "创建者Id") private String creator; + @Schema(description = "主键ID") + private Long masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptJob/vo/UnplannedreceiptJobMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptJob/vo/UnplannedreceiptJobMainUpdateReqVO.java index 0a10464a..968d6a36 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptJob/vo/UnplannedreceiptJobMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptJob/vo/UnplannedreceiptJobMainUpdateReqVO.java @@ -1,12 +1,18 @@ package com.win.module.wms.controller.unplannedreceiptJob.vo; +import com.win.module.wms.controller.transferissueJob.vo.TransferissueJobDetailUpdateReqVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import javax.validation.Valid; +import java.util.List; + @Schema(description = "管理后台 - 计划外入库任务主更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class UnplannedreceiptJobMainUpdateReqVO extends UnplannedreceiptJobMainBaseVO { + @Schema(description = "子表数据") + private List<@Valid UnplannedreceiptJobDetailUpdateReqVO> subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRecord/UnplannedreceiptRecordDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRecord/UnplannedreceiptRecordDetailController.java index 2aaeaec4..1432314e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRecord/UnplannedreceiptRecordDetailController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRecord/UnplannedreceiptRecordDetailController.java @@ -1,29 +1,32 @@ package com.win.module.wms.controller.unplannedreceiptRecord; +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.unplannedreceiptRecord.vo.*; +import com.win.module.wms.convert.unplannedreceiptRecord.UnplannedreceiptRecordDetailConvert; +import com.win.module.wms.dal.dataobject.unplannedreceiptRecord.UnplannedreceiptRecordDetailDO; +import com.win.module.wms.service.unplannedreceiptRecord.UnplannedreceiptRecordDetailService; +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.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 javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +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.unplannedreceiptRecord.UnplannedreceiptRecordDetailDO; -import com.win.module.wms.convert.unplannedreceiptRecord.UnplannedreceiptRecordDetailConvert; -import com.win.module.wms.service.unplannedreceiptRecord.UnplannedreceiptRecordDetailService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 计划外入库记录子") @RestController @@ -33,7 +36,6 @@ public class UnplannedreceiptRecordDetailController { @Resource private UnplannedreceiptRecordDetailService unplannedreceiptRecordDetailService; - @Resource private AdminUserApi userApi; @@ -86,9 +88,10 @@ public class UnplannedreceiptRecordDetailController { PageResult pageResult = unplannedreceiptRecordDetailService.getUnplannedreceiptRecordDetailPage(pageVO); return success(UnplannedreceiptRecordDetailConvert.INSTANCE.convertPage(pageResult)); } + @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") - @PreAuthorize("@ss.hasPermission('wms:unplannedreceiptRecordDetail:query')") + @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-record-detail:query')") public CommonResult> getUnplannedreceiptRecordDetailSenior(@Valid @RequestBody CustomConditions conditions) { PageResult pageResult = unplannedreceiptRecordDetailService.getUnplannedreceiptRecordDetailSenior(conditions); PageResult result = UnplannedreceiptRecordDetailConvert.INSTANCE.convertPage(pageResult); @@ -99,6 +102,7 @@ public class UnplannedreceiptRecordDetailController { } return success(result); } + @GetMapping("/export-excel") @Operation(summary = "导出计划外入库记录子 Excel") @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-record-detail:export')") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRecord/UnplannedreceiptRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRecord/UnplannedreceiptRecordMainController.java index 8612fa9d..298fe1bf 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRecord/UnplannedreceiptRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRecord/UnplannedreceiptRecordMainController.java @@ -1,30 +1,32 @@ package com.win.module.wms.controller.unplannedreceiptRecord; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.unplannedreceiptRecord.vo.*; +import com.win.module.wms.convert.unplannedreceiptRecord.UnplannedreceiptRecordMainConvert; +import com.win.module.wms.dal.dataobject.unplannedreceiptRecord.UnplannedreceiptRecordMainDO; +import com.win.module.wms.service.unplannedreceiptRecord.UnplannedreceiptRecordMainService; +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.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 javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +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.unplannedreceiptRecord.UnplannedreceiptRecordMainDO; -import com.win.module.wms.convert.unplannedreceiptRecord.UnplannedreceiptRecordMainConvert; -import com.win.module.wms.service.unplannedreceiptRecord.UnplannedreceiptRecordMainService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 计划外入库记录主") @RestController diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRecord/vo/UnplannedreceiptRecordDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRecord/vo/UnplannedreceiptRecordDetailBaseVO.java index 2be5ce37..e3e78b5f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRecord/vo/UnplannedreceiptRecordDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRecord/vo/UnplannedreceiptRecordDetailBaseVO.java @@ -120,4 +120,7 @@ public class UnplannedreceiptRecordDetailBaseVO { @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/unplannedreceiptRecord/vo/UnplannedreceiptRecordDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRecord/vo/UnplannedreceiptRecordDetailExportReqVO.java index 18ec021f..c66a0c93 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRecord/vo/UnplannedreceiptRecordDetailExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRecord/vo/UnplannedreceiptRecordDetailExportReqVO.java @@ -104,4 +104,7 @@ public class UnplannedreceiptRecordDetailExportReqVO { @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/unplannedreceiptRecord/vo/UnplannedreceiptRecordDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRecord/vo/UnplannedreceiptRecordDetailPageReqVO.java index ac5f52a5..c6fa7767 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRecord/vo/UnplannedreceiptRecordDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRecord/vo/UnplannedreceiptRecordDetailPageReqVO.java @@ -106,4 +106,7 @@ public class UnplannedreceiptRecordDetailPageReqVO 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/unplannedreceiptRequest/UnplannedreceiptRequestDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/UnplannedreceiptRequestDetailController.java index 1e3b940e..2170e54b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/UnplannedreceiptRequestDetailController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/UnplannedreceiptRequestDetailController.java @@ -1,29 +1,32 @@ package com.win.module.wms.controller.unplannedreceiptRequest; +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.unplannedreceiptRequest.vo.*; +import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestDetailConvert; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; +import com.win.module.wms.service.unplannedreceiptRequest.UnplannedreceiptRequestDetailService; +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.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 javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +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.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; -import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestDetailConvert; -import com.win.module.wms.service.unplannedreceiptRequest.UnplannedreceiptRequestDetailService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 计划外入库申请子") @RestController diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/UnplannedreceiptRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/UnplannedreceiptRequestMainController.java index 8a4a70cf..823900ed 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/UnplannedreceiptRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/UnplannedreceiptRequestMainController.java @@ -9,17 +9,12 @@ 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.PurchasereceiptRequestMainExcelVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.*; -import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert; import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestDetailConvert; import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert; -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.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import com.win.module.wms.enums.DictTypeConstants; -import com.win.module.wms.service.purchasereceiptRequest.PurchasereceiptRequestDetailService; import com.win.module.wms.service.unplannedreceiptRequest.UnplannedreceiptRequestDetailService; import com.win.module.wms.service.unplannedreceiptRequest.UnplannedreceiptRequestMainService; import io.swagger.v3.oas.annotations.Operation; @@ -50,10 +45,8 @@ public class UnplannedreceiptRequestMainController { @Resource private UnplannedreceiptRequestMainService unplannedreceiptRequestMainService; - @Resource private UnplannedreceiptRequestDetailService unplannedreceiptRequestDetailService; - @Resource private AdminUserApi userApi; @@ -107,9 +100,10 @@ public class UnplannedreceiptRequestMainController { PageResult pageResult = unplannedreceiptRequestMainService.getUnplannedreceiptRequestMainPage(pageVO); return success(UnplannedreceiptRequestMainConvert.INSTANCE.convertPage(pageResult)); } + @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") - @PreAuthorize("@ss.hasPermission('wms:unplannedreceiptRequestMain:query')") + @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:query')") public CommonResult> getUnplannedreceiptRequestMainSenior(@Valid @RequestBody CustomConditions conditions) { PageResult pageResult = unplannedreceiptRequestMainService.getUnplannedreceiptRequestMainSenior(conditions); PageResult result = UnplannedreceiptRequestMainConvert.INSTANCE.convertPage(pageResult); @@ -204,7 +198,7 @@ public class UnplannedreceiptRequestMainController { @Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"), @Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true") }) - @PreAuthorize("@ss.hasPermission('wms:purchase-plan-main:import')") + @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:import')") public CommonResult> importExcel(HttpServletResponse response, @RequestParam("file") MultipartFile file, @RequestParam(value = "mode") Integer mode, @@ -222,4 +216,58 @@ public class UnplannedreceiptRequestMainController { return success(returnMap); } + @PutMapping("/close") + @Operation(summary = "关闭计划外入库申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:close')") + public CommonResult closeUnplannedreceiptRequestMain(@RequestParam("id") Long id) { + Integer count = unplannedreceiptRequestMainService.closeUnplannedreceiptRequestMain(id); + return success(count > 0); + } + + @PutMapping("/reAdd") + @Operation(summary = "重新添加计划外申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:reAdd')") + public CommonResult reAddUnplannedreceiptRequestMain(@RequestParam("id") Long id) { + Integer count = unplannedreceiptRequestMainService.reAddUnplannedreceiptRequestMain(id); + return success(count > 0); + } + + @PutMapping("/submit") + @Operation(summary = "提交计划外入库申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:submit')") + public CommonResult submitUnplannedreceiptRequestMain(@RequestParam("id") Long id) { + Integer count = unplannedreceiptRequestMainService.submitUnplannedreceiptRequestMain(id); + return success(count > 0); + } + + @PutMapping("/refused") + @Operation(summary = "审批拒绝计划外入库申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:refused')") + public CommonResult abortUnplannedreceiptRequestMain(@RequestParam("id") Long id) { + Integer count = unplannedreceiptRequestMainService.abortUnplannedreceiptRequestMain(id); + return success(count > 0); + } + + @PutMapping("/agree") + @Operation(summary = "审批通过计划外入库申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:agree')") + public CommonResult agreeUnplannedreceiptRequestMain(@RequestParam("id") Long id) { + Integer count = unplannedreceiptRequestMainService.agreeUnplannedreceiptRequestMain(id); + return success(count > 0); + } + + @PutMapping("/handle") + @Operation(summary = "处理计划外入库申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:unplannedreceipt-request-main:handle')") + public CommonResult handleUnplannedreceiptRequestMain(@RequestParam("id") Long id) { + Integer count = unplannedreceiptRequestMainService.handleUnplannedreceiptRequestMain(id); + return success(count > 0); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestDetailPageReqVO.java index a2454f1a..c560f46d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptRequest/vo/UnplannedreceiptRequestDetailPageReqVO.java @@ -94,4 +94,7 @@ public class UnplannedreceiptRequestDetailPageReqVO extends PageParam { @Schema(description = "最后更新者用户名") private String updater; + @Schema(description = "主键ID") + private Long masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptJob/UnplannedreceiptJobDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptJob/UnplannedreceiptJobDetailConvert.java index d7b1ee33..734dd6c9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptJob/UnplannedreceiptJobDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptJob/UnplannedreceiptJobDetailConvert.java @@ -8,6 +8,7 @@ import com.win.module.wms.controller.unplannedreceiptJob.vo.UnplannedreceiptJobD import com.win.module.wms.controller.unplannedreceiptJob.vo.UnplannedreceiptJobDetailExcelVO; import com.win.module.wms.controller.unplannedreceiptJob.vo.UnplannedreceiptJobDetailRespVO; import com.win.module.wms.controller.unplannedreceiptJob.vo.UnplannedreceiptJobDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.unplannedreceiptJob.UnplannedreceiptJobDetailDO; @@ -34,4 +35,5 @@ public interface UnplannedreceiptJobDetailConvert { List convertList02(List list); + UnplannedreceiptJobDetailDO convert(UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptJob/UnplannedreceiptJobMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptJob/UnplannedreceiptJobMainConvert.java index 80d49c39..4a7ae521 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptJob/UnplannedreceiptJobMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedreceiptJob/UnplannedreceiptJobMainConvert.java @@ -8,6 +8,7 @@ import com.win.module.wms.controller.unplannedreceiptJob.vo.UnplannedreceiptJobM import com.win.module.wms.controller.unplannedreceiptJob.vo.UnplannedreceiptJobMainExcelVO; import com.win.module.wms.controller.unplannedreceiptJob.vo.UnplannedreceiptJobMainRespVO; import com.win.module.wms.controller.unplannedreceiptJob.vo.UnplannedreceiptJobMainUpdateReqVO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.unplannedreceiptJob.UnplannedreceiptJobMainDO; @@ -34,4 +35,5 @@ public interface UnplannedreceiptJobMainConvert { List convertList02(List list); + UnplannedreceiptJobMainDO convert(UnplannedreceiptRequestMainDO mainDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedissueRequest/UnplannedissueRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedissueRequest/UnplannedissueRequestMainDO.java index 0b9001b6..f36949ce 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedissueRequest/UnplannedissueRequestMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedissueRequest/UnplannedissueRequestMainDO.java @@ -113,4 +113,15 @@ public class UnplannedissueRequestMainDO extends BaseDO { */ private String directCreateRecord; + /** + * 入库库存状态范围 + */ + private String inInventoryStatuses; + + /** + * 出库库存状态范围 + */ + private String outInventoryStatuses; + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedreceiptJob/UnplannedreceiptJobMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedreceiptJob/UnplannedreceiptJobMainDO.java index 25d475a1..0a02e872 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedreceiptJob/UnplannedreceiptJobMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedreceiptJob/UnplannedreceiptJobMainDO.java @@ -196,4 +196,14 @@ public class UnplannedreceiptJobMainDO 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/dataobject/unplannedreceiptRecord/UnplannedreceiptRecordDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedreceiptRecord/UnplannedreceiptRecordDetailDO.java index f7827742..9ea295ef 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedreceiptRecord/UnplannedreceiptRecordDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedreceiptRecord/UnplannedreceiptRecordDetailDO.java @@ -1,6 +1,8 @@ package com.win.module.wms.dal.dataobject.unplannedreceiptRecord; import lombok.*; + +import java.math.BigDecimal; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; @@ -111,7 +113,7 @@ public class UnplannedreceiptRecordDetailDO extends BaseDO { /** * 数量 */ - private Integer qty; + private BigDecimal qty; /** * 计量单位 * diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedreceiptRequest/UnplannedreceiptRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedreceiptRequest/UnplannedreceiptRequestMainDO.java index 4fcbea3f..157af205 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedreceiptRequest/UnplannedreceiptRequestMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedreceiptRequest/UnplannedreceiptRequestMainDO.java @@ -113,4 +113,14 @@ public class UnplannedreceiptRequestMainDO extends BaseDO { */ private String directCreateRecord; + /** + * 入库库存状态范围 + */ + 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/unplannedreceiptJob/UnplannedreceiptJobDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptJob/UnplannedreceiptJobDetailMapper.java index 5b573073..110838bc 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptJob/UnplannedreceiptJobDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptJob/UnplannedreceiptJobDetailMapper.java @@ -1,17 +1,17 @@ package com.win.module.wms.dal.mysql.unplannedreceiptJob; -import java.util.*; - import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; -import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.mapper.BaseMapperX; +import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.unplannedreceiptJob.vo.UnplannedreceiptJobDetailExportReqVO; import com.win.module.wms.controller.unplannedreceiptJob.vo.UnplannedreceiptJobDetailPageReqVO; import com.win.module.wms.dal.dataobject.unplannedreceiptJob.UnplannedreceiptJobDetailDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 计划外入库任务子 Mapper * @@ -49,6 +49,7 @@ public interface UnplannedreceiptJobDetailMapper extends BaseMapperX selectList(Long masterId){ + return selectList(new LambdaQueryWrapperX() + .eq(UnplannedreceiptJobDetailDO::getMasterId, masterId)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptJob/UnplannedreceiptJobMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptJob/UnplannedreceiptJobMainMapper.java index d2b8d014..dddb7223 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptJob/UnplannedreceiptJobMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptJob/UnplannedreceiptJobMainMapper.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.unplannedreceiptJob.vo.UnplannedreceiptJobMainExportReqVO; import com.win.module.wms.controller.unplannedreceiptJob.vo.UnplannedreceiptJobMainPageReqVO; +import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobMainDO; import com.win.module.wms.dal.dataobject.unplannedissueJob.UnplannedissueJobMainDO; import com.win.module.wms.dal.dataobject.unplannedreceiptJob.UnplannedreceiptJobMainDO; +import com.win.module.wms.enums.order.OrderStatusEnum; import org.apache.ibatis.annotations.Mapper; /** @@ -115,4 +117,9 @@ public interface UnplannedreceiptJobMainMapper extends BaseMapperX() + .eq(UnplannedreceiptJobMainDO::getRequestNumber, requestNumber) + .ne(UnplannedreceiptJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptRecord/UnplannedreceiptRecordDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptRecord/UnplannedreceiptRecordDetailMapper.java index 6a85f9f4..53daafa8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptRecord/UnplannedreceiptRecordDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedreceiptRecord/UnplannedreceiptRecordDetailMapper.java @@ -55,6 +55,7 @@ public interface UnplannedreceiptRecordDetailMapper extends BaseMapperX getUnplannedreceiptJobDetailList(UnplannedreceiptJobDetailExportReqVO exportReqVO); + /** + * 获取任务子表数据 + * @param id 主表Id + * @return 列表 + */ + List selectList(Long id); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptJob/UnplannedreceiptJobDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptJob/UnplannedreceiptJobDetailServiceImpl.java index 6b2ad27f..fb734179 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptJob/UnplannedreceiptJobDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptJob/UnplannedreceiptJobDetailServiceImpl.java @@ -89,4 +89,9 @@ public class UnplannedreceiptJobDetailServiceImpl implements UnplannedreceiptJob return unplannedreceiptJobDetailMapper.selectList(exportReqVO); } + @Override + public List selectList(Long masterId) { + return unplannedreceiptJobDetailMapper.selectList(masterId); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptJob/UnplannedreceiptJobMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptJob/UnplannedreceiptJobMainService.java index 16a9abb2..a2757402 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptJob/UnplannedreceiptJobMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptJob/UnplannedreceiptJobMainService.java @@ -86,7 +86,7 @@ public interface UnplannedreceiptJobMainService { * @param pstatus 状态 * @return 采购订单主列表 */ - public UnplannedreceiptJobMainDO unplannedreceiptJobMainDoStatusRight(String pnumber, String pstatus); + UnplannedreceiptJobMainDO unplannedreceiptJobMainDoStatusRight(String pnumber, String pstatus); /** *根据任务状态获取任务数量 @@ -94,4 +94,32 @@ public interface UnplannedreceiptJobMainService { * @return */ Map getCountByStatus(@Nullable Collection types); + + /** + * 承接任务 + * @param id 计划外入库任务主ID + * @return 更新数量 + */ + int acceptUnplannedreceiptJobMain(Long id); + + /** + * 放弃任务 + * @param id 计划外入库任务主ID + * @return 更新数量 + */ + int abandonUnplannedreceiptJobMain(Long id); + + /** + * 关闭任务 + * @param id 计划外入库任务主ID + * @return 更新数量 + */ + int closeUnplannedreceiptJobMain(Long id); + + /** + * 执行计划外入库任务 + * @param updateReqVO 执行传参 + * @return + */ + String executeUnplannedreceiptJobMain(UnplannedreceiptJobMainUpdateReqVO updateReqVO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptJob/UnplannedreceiptJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptJob/UnplannedreceiptJobMainServiceImpl.java index b75096e3..35209250 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptJob/UnplannedreceiptJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptJob/UnplannedreceiptJobMainServiceImpl.java @@ -1,21 +1,47 @@ package com.win.module.wms.service.unplannedreceiptJob; 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.unplannedreceiptJob.vo.UnplannedreceiptJobMainCreateReqVO; -import com.win.module.wms.controller.unplannedreceiptJob.vo.UnplannedreceiptJobMainExportReqVO; -import com.win.module.wms.controller.unplannedreceiptJob.vo.UnplannedreceiptJobMainPageReqVO; -import com.win.module.wms.controller.unplannedreceiptJob.vo.UnplannedreceiptJobMainUpdateReqVO; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import java.util.*; -import com.win.module.wms.dal.dataobject.unplannedreceiptJob.UnplannedreceiptJobMainDO; 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.unplannedreceiptJob.vo.*; import com.win.module.wms.convert.unplannedreceiptJob.UnplannedreceiptJobMainConvert; +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.unplannedreceiptJob.UnplannedreceiptJobDetailDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptJob.UnplannedreceiptJobMainDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRecord.UnplannedreceiptRecordDetailDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRecord.UnplannedreceiptRecordMainDO; import com.win.module.wms.dal.mysql.unplannedreceiptJob.UnplannedreceiptJobMainMapper; +import com.win.module.wms.dal.mysql.unplannedreceiptRecord.UnplannedreceiptRecordDetailMapper; +import com.win.module.wms.dal.mysql.unplannedreceiptRecord.UnplannedreceiptRecordMainMapper; +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 org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.*; + import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.*; +import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; +import static com.win.module.wms.enums.ErrorCodeConstants.UNPLANNEDRECEIPT_JOB_MAIN_NOT_EXISTS; +import static com.win.module.wms.enums.ErrorCodeConstants.UNPLANNEDRECEIPT_JOB_MAIN_STATUS_ERROR; /** * 计划外入库任务主 Service 实现类 @@ -28,6 +54,29 @@ public class UnplannedreceiptJobMainServiceImpl implements UnplannedreceiptJobMa @Resource private UnplannedreceiptJobMainMapper unplannedreceiptJobMainMapper; + @Resource + private AdminUserApi userApi; + @Resource + private TrendsApi trendsApi; + @Resource + private UnplannedreceiptJobDetailService unplannedreceiptJobDetailService; + @Resource + private JobUtils jobUtils; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private UnplannedreceiptRecordMainMapper unplannedreceiptRecordMainMapper; + @Resource + private LocationService locationService; + @Resource + private TransactionService transactionService; + @Resource + private ExpectinService expectinService; + @Resource + private RecordsettingService recordsettingService; + @Resource + private UnplannedreceiptRecordDetailMapper unplannedreceiptRecordDetailMapper; + @Override public Long createUnplannedreceiptJobMain(UnplannedreceiptJobMainCreateReqVO createReqVO) { @@ -55,12 +104,12 @@ public class UnplannedreceiptJobMainServiceImpl implements UnplannedreceiptJobMa unplannedreceiptJobMainMapper.deleteById(id); } - - - private void validateUnplannedreceiptJobMainExists(Long id) { - if (unplannedreceiptJobMainMapper.selectById(id) == null) { + private UnplannedreceiptJobMainDO validateUnplannedreceiptJobMainExists(Long id) { + UnplannedreceiptJobMainDO unplannedreceiptJobMainDO = unplannedreceiptJobMainMapper.selectById(id); + if (unplannedreceiptJobMainDO == null) { throw exception(UNPLANNEDRECEIPT_JOB_MAIN_NOT_EXISTS); } + return unplannedreceiptJobMainDO; } @Override @@ -107,4 +156,157 @@ public class UnplannedreceiptJobMainServiceImpl implements UnplannedreceiptJobMa map.put("count", l.intValue()); return map; } + + @Transactional + @Override + public int acceptUnplannedreceiptJobMain(Long id) { + UnplannedreceiptJobMainDO unplannedreceiptJobMainDO = this.validateUnplannedreceiptJobMainExists(id); + JobStatusState jobStatusState = new JobStatusState(unplannedreceiptJobMainDO.getStatus()); + if(!jobStatusState.accept()) { + throw exception(UNPLANNEDRECEIPT_JOB_MAIN_STATUS_ERROR); + } + Long userId = getLoginUserId(); + AdminUserRespDTO userRespDTO = userApi.getUser(userId); + unplannedreceiptJobMainDO.setStatus(jobStatusState.getState().getCode()); + unplannedreceiptJobMainDO.setAcceptUserId(String.valueOf(userId)); + unplannedreceiptJobMainDO.setAcceptUserName(userRespDTO.getNickname()); + unplannedreceiptJobMainDO.setAcceptTime(LocalDateTime.now()); + trendsApi.createTrends(id, "UnplannedReceiptJob", "承接了计划外入库任务", TrendsTypeEnum.UPDATE); + return unplannedreceiptJobMainMapper.updateById(unplannedreceiptJobMainDO); + } + + @Transactional + @Override + public int abandonUnplannedreceiptJobMain(Long id) { + UnplannedreceiptJobMainDO unplannedreceiptJobMainDO = this.validateUnplannedreceiptJobMainExists(id); + JobStatusState jobStatusState = new JobStatusState(unplannedreceiptJobMainDO.getStatus()); + if(!jobStatusState.cancelAccept()) { + throw exception(UNPLANNEDRECEIPT_JOB_MAIN_STATUS_ERROR); + } + unplannedreceiptJobMainDO.setStatus(jobStatusState.getState().getCode()); + unplannedreceiptJobMainDO.setAcceptUserId(null); + unplannedreceiptJobMainDO.setAcceptUserName(null); + unplannedreceiptJobMainDO.setAcceptTime(null); + trendsApi.createTrends(id, "UnplannedReceiptJob", "取消了计划外入库任务", TrendsTypeEnum.UPDATE); + return unplannedreceiptJobMainMapper.updateById(unplannedreceiptJobMainDO); + } + + @Transactional + @Override + public int closeUnplannedreceiptJobMain(Long id) { + UnplannedreceiptJobMainDO unplannedreceiptJobMainDO = this.validateUnplannedreceiptJobMainExists(id); + JobStatusState jobStatusState = new JobStatusState(unplannedreceiptJobMainDO.getStatus()); + if(!jobStatusState.close()) { + throw exception(UNPLANNEDRECEIPT_JOB_MAIN_STATUS_ERROR); + } + unplannedreceiptJobMainDO.setStatus(jobStatusState.getState().getCode()); + trendsApi.createTrends(id, "UnplannedReceiptJob", "关闭了计划外入库任务", TrendsTypeEnum.UPDATE); + return unplannedreceiptJobMainMapper.updateById(unplannedreceiptJobMainDO); + } + + @Transactional + @Override + public String executeUnplannedreceiptJobMain(UnplannedreceiptJobMainUpdateReqVO updateReqVO) { + // 查询任务主表与子表 + UnplannedreceiptJobMainDO unplannedreceiptJobMainDO = this.validateUnplannedreceiptJobMainExists(updateReqVO.getId()); + List subList = unplannedreceiptJobDetailService.selectList(unplannedreceiptJobMainDO.getId()); + JobStatusState jobStatusState = new JobStatusState(unplannedreceiptJobMainDO.getStatus()); + boolean flag = jobStatusState.execute(); + if(!flag) { + throw new ServiceException(UNPLANNEDRECEIPT_JOB_MAIN_STATUS_ERROR); + } + //更新完成信息 + Long userId = getLoginUserId(); + AdminUserRespDTO userRespDTO = userApi.getUser(userId); + unplannedreceiptJobMainDO.setStatus(jobStatusState.getState().getCode()); + unplannedreceiptJobMainDO.setCompleteTime(LocalDateTime.now()); + unplannedreceiptJobMainDO.setCompleteUserId(String.valueOf(userRespDTO.getId())); + unplannedreceiptJobMainDO.setCompleteUserName(userRespDTO.getNickname()); + //更新任务表状态 + unplannedreceiptJobMainMapper.updateById(unplannedreceiptJobMainDO); + + // 创建计划外入库记录 + UnplannedreceiptRecordMainDO unplannedreceiptRecordMainDO = new UnplannedreceiptRecordMainDO(); + BeanUtils.copyProperties(unplannedreceiptJobMainDO, unplannedreceiptRecordMainDO); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedReceiptRecord"); + unplannedreceiptRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + unplannedreceiptRecordMainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + String number = serialNumberApi.generateCode(RuleCodeEnum.UNPLANNED_RECEIPT_RECORD.getCode()); + String interFaceType = recordsettingService.selectRecordsettingExist("UnplannedReceiptRecord").getInterfaceType(); + unplannedreceiptRecordMainDO.setInterfaceType(interFaceType); + unplannedreceiptRecordMainDO.setNumber(number); + unplannedreceiptRecordMainDO.setBusinessType(businesstypeDO.getCode()); + unplannedreceiptRecordMainDO.setJobNumber(unplannedreceiptJobMainDO.getNumber()); + unplannedreceiptRecordMainDO.setExecuteTime(LocalDateTime.now()); + unplannedreceiptRecordMainDO.setActiveDate(LocalDateTime.now()); + unplannedreceiptRecordMainDO.setDueTime(unplannedreceiptJobMainDO.getRequestDueTime()); + unplannedreceiptRecordMainDO.setAvailable("TRUE"); + unplannedreceiptRecordMainDO.setId(null); + unplannedreceiptRecordMainDO.setCreateTime(null); + unplannedreceiptRecordMainDO.setCreator(null); + unplannedreceiptRecordMainDO.setUpdateTime(null); + unplannedreceiptRecordMainDO.setUpdater(null); + unplannedreceiptRecordMainMapper.insert(unplannedreceiptRecordMainDO); + // 创建计划外入库记录明细 + List reqSubList = updateReqVO.getSubList(); + List unplannedreceiptRecordDetailDOList = new ArrayList<>(); + + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); + for(UnplannedreceiptJobDetailDO unplannedreceiptJobDetailDO:subList) { + boolean isExists = false; + UnplannedreceiptJobDetailUpdateReqVO unplannedreceiptJobDetailUpdateReqVO = null; + for(UnplannedreceiptJobDetailUpdateReqVO temp:reqSubList) { + if(temp.getId().equals(unplannedreceiptJobDetailDO.getId())) { + unplannedreceiptJobDetailUpdateReqVO = temp; + isExists = true; + break; + } + } + if(isExists) { + UnplannedreceiptRecordDetailDO unplannedreceiptRecordDetailDO = new UnplannedreceiptRecordDetailDO(); + BeanUtils.copyProperties(unplannedreceiptJobDetailUpdateReqVO, unplannedreceiptRecordDetailDO); + unplannedreceiptRecordDetailDO.setMasterId(String.valueOf(unplannedreceiptRecordMainDO.getId())); + unplannedreceiptRecordDetailDO.setNumber(number); + unplannedreceiptRecordDetailDO.setJobDetailId(String.valueOf(unplannedreceiptJobDetailDO.getId())); + LocationDO locationDO2 = locationService.selectLocation(unplannedreceiptJobDetailDO.getToLocationCode()); + unplannedreceiptRecordDetailDO.setToLocationCode(locationDO2.getCode()); + unplannedreceiptRecordDetailDO.setToAreaCode(locationDO2.getAreaCode()); + unplannedreceiptRecordDetailDO.setToLocationGroupCode(locationDO2.getLocationGroupCode()); + unplannedreceiptRecordDetailDO.setInventoryStatus(unplannedreceiptJobDetailDO.getInventoryStatus()); + unplannedreceiptRecordDetailDO.setQty(unplannedreceiptJobDetailDO.getQty()); + unplannedreceiptRecordDetailDOList.add(unplannedreceiptRecordDetailDO); + + //添加库存事务list + TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); + BeanUtils.copyProperties(unplannedreceiptJobDetailDO, transactionCreateReqVO); + //增加业务类型 + transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); + transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); + transactionCreateReqVO.setBusinessType(unplannedreceiptRecordMainDO.getBusinessType()); + transactionCreateReqVO.setLocationCode(unplannedreceiptRecordDetailDO.getToLocationCode()); + transactionCreateReqVO.setOwnerCode(unplannedreceiptRecordDetailDO.getOwnerCode()); + transactionCreateReqVO.setPackingNumber(unplannedreceiptRecordDetailDO.getPackingNumber()); + transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVO.setBatch(unplannedreceiptRecordDetailDO.getBatch()); + transactionCreateReqVO.setWarehouseCode(unplannedreceiptRecordMainDO.getToWarehouseCode()); + transactionCreateReqVO.setRecordNumber(number); + transactionCreateReqVO.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVO); + } + } + if(!unplannedreceiptRecordDetailDOList.isEmpty()) { + unplannedreceiptRecordDetailMapper.insertBatch(unplannedreceiptRecordDetailDOList); + } + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + //移除预计入 + expectinService.deleteExpectinByJobNumber(unplannedreceiptJobMainDO.getNumber()); + //变更记录 + trendsApi.createTrends(unplannedreceiptJobMainDO.getId(), "UnplannedReceiptJob", "执行计划外入库任务", TrendsTypeEnum.UPDATE); + return number; + + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainService.java index efe03d36..05fe3393 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainService.java @@ -3,7 +3,6 @@ package com.win.module.wms.service.unplannedreceiptRequest; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.unplannedreceiptRequest.vo.*; -import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO; import javax.validation.Valid; @@ -79,8 +78,6 @@ public interface UnplannedreceiptRequestMainService { */ List getUnplannedreceiptRequestMainList(UnplannedreceiptRequestMainExportReqVO exportReqVO); - - /** * 批量导入采计划外入库信息 * @param datas 导入计划外入库主信息列表 @@ -88,9 +85,50 @@ public interface UnplannedreceiptRequestMainService { * @param updatePart 是否支持更新 * @return 导入结果 */ - public List importUnplannedreceiptRequestMainList(List datas, Integer mode, boolean updatePart); + List importUnplannedreceiptRequestMainList(List datas, Integer mode, boolean updatePart); + + List getUnplannedreceiptRequestMainList1(CustomConditions conditions); + + /** + * 关闭计划外入库申请主 + * @param id 计划外入库申请主ID + * @return 更新数量 + */ + Integer closeUnplannedreceiptRequestMain(Long id); - List getUnplannedreceiptRequestMainList1(CustomConditions conditions); + /** + * 重新添加计划外申请主 + * @param id 计划外入库申请主ID + * @return 更新数量 + */ + Integer reAddUnplannedreceiptRequestMain(Long id); + /** + * 提交计划外入库申请主 + * @param id 计划外入库申请主ID + * @return 更新数量 + */ + Integer submitUnplannedreceiptRequestMain(Long id); + + /** + * 审批拒绝计划外入库申请主 + * @param id 计划外入库申请主ID + * @return 更新数量 + */ + Integer abortUnplannedreceiptRequestMain(Long id); + + /** + * 审批通过计划外入库申请主 + * @param id 计划外入库申请主ID + * @return 更新数量 + */ + Integer agreeUnplannedreceiptRequestMain(Long id); + + /** + * 处理计划外入库申请主 + * @param id 计划外入库申请主ID + * @return 更新数量 + */ + Integer handleUnplannedreceiptRequestMain(Long id); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainServiceImpl.java index 2a881865..956ad94f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptRequest/UnplannedreceiptRequestMainServiceImpl.java @@ -4,47 +4,51 @@ import cn.hutool.core.collection.CollUtil; import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; -import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.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.enums.serialNumber.RuleCodeEnum; -import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportErrorVO; -import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainBaseVO; -import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO; -import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExportReqVO; -import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailUpdateReqVO; -import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainUpdateReqVO; +import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; +import com.win.module.wms.controller.unplannedreceiptRecord.vo.UnplannedreceiptRecordDetailCreateReqVO; +import com.win.module.wms.controller.unplannedreceiptRecord.vo.UnplannedreceiptRecordMainCreateReqVO; import com.win.module.wms.controller.unplannedreceiptRequest.vo.*; -import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestMainConvert; -import com.win.module.wms.convert.transferissueRequest.TransferissueRequestDetailConvert; +import com.win.module.wms.convert.unplannedreceiptJob.UnplannedreceiptJobDetailConvert; +import com.win.module.wms.convert.unplannedreceiptJob.UnplannedreceiptJobMainConvert; +import com.win.module.wms.convert.unplannedreceiptRecord.UnplannedreceiptRecordDetailConvert; +import com.win.module.wms.convert.unplannedreceiptRecord.UnplannedreceiptRecordMainConvert; import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestDetailConvert; import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert; 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.productputawayRequest.ProductputawayRequestDetailDO; -import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO; -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.transferissueRequest.TransferissueRequestDetailDO; -import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptJob.UnplannedreceiptJobDetailDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptJob.UnplannedreceiptJobMainDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRecord.UnplannedreceiptRecordDetailDO; +import com.win.module.wms.dal.dataobject.unplannedreceiptRecord.UnplannedreceiptRecordMainDO; 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.unplannedreceiptJob.UnplannedreceiptJobDetailMapper; +import com.win.module.wms.dal.mysql.unplannedreceiptJob.UnplannedreceiptJobMainMapper; +import com.win.module.wms.dal.mysql.unplannedreceiptRecord.UnplannedreceiptRecordDetailMapper; +import com.win.module.wms.dal.mysql.unplannedreceiptRecord.UnplannedreceiptRecordMainMapper; import com.win.module.wms.dal.mysql.unplannedreceiptRequest.UnplannedreceiptRequestDetailMapper; import com.win.module.wms.dal.mysql.unplannedreceiptRequest.UnplannedreceiptRequestMainMapper; -import com.win.module.wms.enums.DictTypeConstants; +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.businesstype.BusinesstypeService; +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.service.shift.ShiftService; -import com.win.module.wms.service.supplieritem.SupplieritemService; import com.win.module.wms.util.JobUtils; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; -import org.springframework.transaction.interceptor.TransactionAspectSupport; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; @@ -54,6 +58,7 @@ import java.util.Collection; import java.util.List; 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.*; /** @@ -70,37 +75,151 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR @Resource private UnplannedreceiptRequestDetailMapper unplannedreceiptRequestDetailMapper; @Resource - private ShiftService shiftService; - @Resource private ItembasicService itembasicService; @Resource - private SupplieritemService supplieritemService; - @Resource private JobUtils jobUtils; @Resource private LocationService locationService; @Resource - private BusinesstypeService businesstypeService; - @Resource private SerialNumberApi serialNumberApi; @Resource private RequestsettingService requestsettingService; @Resource private TrendsApi trendsApi; + @Resource + private RecordsettingService recordsettingService; + @Resource + private UnplannedreceiptRecordMainMapper unplannedreceiptRecordMainMapper; + @Resource + private UnplannedreceiptRecordDetailMapper unplannedreceiptRecordDetailMapper; + @Resource + private JobsettingService jobsettingService; + @Resource + private AdminUserApi userApi; + @Resource + private UnplannedreceiptJobMainMapper unplannedreceiptJobMainMapper; + @Resource + private UnplannedreceiptJobDetailMapper unplannedreceiptJobDetailMapper; + @Resource + private ExpectinService expectinService; + + @Transactional @Override public Long createUnplannedreceiptRequestMain(UnplannedreceiptRequestMainCreateReqVO createReqVO) { - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest"); + // Setting——>QReqS("UnplannedReceiptRequest") + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedReceiptRequest"); UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = validatorToCreate(createReqVO,requestsettingDO); //调用自动执行方法 if(RequestStatusEnum.HANDLING.getCode().equals(unplannedreceiptRequestMainDO.getStatus())) { - + List detailDOList = unplannedreceiptRequestDetailMapper.selectList(unplannedreceiptRequestMainDO.getId()); + this.generateJob(unplannedreceiptRequestMainDO,detailDOList); } trendsApi.createTrends(requestsettingDO.getId(), "UnplannedReceiptRequest", "增加了计划外入库申请", TrendsTypeEnum.CREATE); return unplannedreceiptRequestMainDO.getId(); } + private void generateJob(UnplannedreceiptRequestMainDO mainDO, List detailDOList) { + //跳过任务直接生成记录 + if("TRUE".equals(mainDO.getDirectCreateRecord())) { + UnplannedreceiptRecordMainCreateReqVO unplannedreceiptRecordMainCreateReqVO = new UnplannedreceiptRecordMainCreateReqVO(); + BeanUtils.copyProperties(mainDO, unplannedreceiptRecordMainCreateReqVO); + unplannedreceiptRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); + String number = serialNumberApi.generateCode(RuleCodeEnum.UNPLANNED_RECEIPT_RECORD.getCode()); + unplannedreceiptRecordMainCreateReqVO.setNumber(number); + //增加业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedReceiptRecord"); + unplannedreceiptRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); + unplannedreceiptRecordMainCreateReqVO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + unplannedreceiptRecordMainCreateReqVO.setInTransactionType(businesstypeDO.getInTransactionType()); + String interFaceType = recordsettingService.selectRecordsettingExist("UnplannedReceiptRecord").getInterfaceType(); + unplannedreceiptRecordMainCreateReqVO.setInterfaceType(interFaceType); + unplannedreceiptRecordMainCreateReqVO.setExecuteTime(LocalDateTime.now()); + unplannedreceiptRecordMainCreateReqVO.setActiveDate(LocalDateTime.now()); + unplannedreceiptRecordMainCreateReqVO.setAvailable("TRUE"); + unplannedreceiptRecordMainCreateReqVO.setDueTime(mainDO.getDueTime()); + unplannedreceiptRecordMainCreateReqVO.setId(null); + unplannedreceiptRecordMainCreateReqVO.setCreator(null); + unplannedreceiptRecordMainCreateReqVO.setCreateTime(null); + UnplannedreceiptRecordMainDO unplannedreceiptRecordMainDO = UnplannedreceiptRecordMainConvert.INSTANCE.convert(unplannedreceiptRecordMainCreateReqVO); + unplannedreceiptRecordMainMapper.insert(unplannedreceiptRecordMainDO); + + for(UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetailDO : detailDOList) { + UnplannedreceiptRecordDetailCreateReqVO unplannedreceiptRecordDetailCreateReqVO = new UnplannedreceiptRecordDetailCreateReqVO(); + BeanUtils.copyProperties(unplannedreceiptRequestDetailDO, unplannedreceiptRecordDetailCreateReqVO); + unplannedreceiptRecordDetailCreateReqVO.setNumber(number); + unplannedreceiptRecordDetailCreateReqVO.setMasterId(String.valueOf(unplannedreceiptRequestDetailDO.getId())); + unplannedreceiptRecordDetailCreateReqVO.setInventoryStatus(unplannedreceiptRequestDetailDO.getInventoryStatus()); + UnplannedreceiptRecordDetailDO unplannedreceiptRecordDetailDO = UnplannedreceiptRecordDetailConvert.INSTANCE.convert(unplannedreceiptRecordDetailCreateReqVO); + unplannedreceiptRecordDetailMapper.insert(unplannedreceiptRecordDetailDO); + } + return; + } + + // 任务 主表数据创建 + UnplannedreceiptJobMainDO unplannedreceiptJobMainDO = UnplannedreceiptJobMainConvert.INSTANCE.convert(mainDO); + BeanUtils.copyProperties(mainDO,unplannedreceiptJobMainDO); + unplannedreceiptJobMainDO.setRequestNumber(mainDO.getNumber()); + // DBT——>DBT3("TransferDeliverJob") + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedReceiptJob"); + unplannedreceiptJobMainDO.setBusinessType(businesstypeDO.getCode()); + // Setting——>QJobS("TransferDeliverJob") + JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("UnplannedReceiptJob"); + String number = serialNumberApi.generateCode(RuleCodeEnum.UNPLANNED_RECEIPT_JOB.getCode()); + unplannedreceiptJobMainDO.setNumber(number); + unplannedreceiptJobMainDO.setRequestDueTime(mainDO.getDueTime()); + unplannedreceiptJobMainDO.setId(null); + unplannedreceiptJobMainDO.setCreateTime(null); + unplannedreceiptJobMainDO.setCreator(userApi.getUser(getLoginUserId()).getId().toString()); + unplannedreceiptJobMainDO.setUpdateTime(null); + unplannedreceiptJobMainDO.setUpdater(null); + unplannedreceiptJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete()); + unplannedreceiptJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation()); + unplannedreceiptJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty()); + unplannedreceiptJobMainDO.setAllowBiggerQty(jobsettingDO.getAllowBiggerQty()); + unplannedreceiptJobMainDO.setAllowSmallerQty(jobsettingDO.getAllowSmallerQty()); + unplannedreceiptJobMainDO.setAllowModifyInventoryStatus(jobsettingDO.getAllowModifyInventoryStatus()); + unplannedreceiptJobMainDO.setAllowContinuousScanning(jobsettingDO.getAllowContinuousScanning()); + unplannedreceiptJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete()); + unplannedreceiptJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber()); + unplannedreceiptJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach()); + unplannedreceiptJobMainDO.setStatus(JobStatusEnum.PENDING.getCode()); + unplannedreceiptJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses());//入库库存状态范围 + unplannedreceiptJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses());//出库库存状态范围 + unplannedreceiptJobMainMapper.insert(unplannedreceiptJobMainDO); + + // 任务 子表数据创建 + List expectinCreateReqVOList = new ArrayList<>(); + List unplannedreceiptJobDetailDOList = new ArrayList<>(); + for(UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetailDO:detailDOList){ + UnplannedreceiptJobDetailDO unplannedreceiptJobDetailDO = UnplannedreceiptJobDetailConvert.INSTANCE.convert(unplannedreceiptRequestDetailDO); + BeanUtils.copyProperties(unplannedreceiptRequestDetailDO, unplannedreceiptJobDetailDO); + unplannedreceiptJobDetailDO.setId(null); + unplannedreceiptJobDetailDO.setCreator(userApi.getUser(getLoginUserId()).getId().toString()); + unplannedreceiptJobDetailDO.setCreateTime(null); + unplannedreceiptJobDetailDO.setUpdater(null); + unplannedreceiptJobDetailDO.setUpdateTime(null); + unplannedreceiptJobDetailDO.setMasterId(unplannedreceiptJobMainDO.getId()); + unplannedreceiptJobDetailDO.setNumber(number); + unplannedreceiptJobDetailDOList.add(unplannedreceiptJobDetailDO); + //预计出 + ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO(); + BeanUtils.copyProperties(unplannedreceiptJobDetailDO, expectinCreateReqVO); + expectinCreateReqVO.setJobNumber(number); + expectinCreateReqVO.setBusinessType(unplannedreceiptJobMainDO.getBusinessType()); + expectinCreateReqVO.setLocationCode(unplannedreceiptJobDetailDO.getToLocationCode()); + expectinCreateReqVO.setOwnerCode(unplannedreceiptJobDetailDO.getOwnerCode()); + expectinCreateReqVO.setQty(unplannedreceiptJobDetailDO.getQty()); + expectinCreateReqVOList.add(expectinCreateReqVO); + } + unplannedreceiptJobDetailMapper.insertBatch(unplannedreceiptJobDetailDOList); + //增加预计入 + expectinService.createExpectin(expectinCreateReqVOList); + trendsApi.createTrends(unplannedreceiptJobMainDO.getId(), "UnplannedReceiptJob", "计划外入库申请生成计划外入库任务", TrendsTypeEnum.CREATE); + } + private UnplannedreceiptRequestMainDO validatorToCreate(UnplannedreceiptRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { + // DBT——>DBT3("UnplannedReceiptRequest") BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("UnplannedReceiptRequest"); UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); List subList = createReqVO.getSubList(); @@ -108,8 +227,10 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR for (UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetailDO : subDOList) { validateDetailMethod(unplannedreceiptRequestDetailDO, businesstypeDO,unplannedreceiptRequestMainDO); } - String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_REQUEST.getCode()); + String number = serialNumberApi.generateCode(RuleCodeEnum.UNPLANNED_RECEIPT_REQUEST.getCode()); unplannedreceiptRequestMainDO.setNumber(number); + unplannedreceiptRequestMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses());// 入库库存状态范围 + unplannedreceiptRequestMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses()); // 出库库存状态范围 unplannedreceiptRequestMainMapper.insert(unplannedreceiptRequestMainDO); for(UnplannedreceiptRequestDetailDO unplannedreceiptRequestDetailDO: subDOList){ unplannedreceiptRequestDetailDO.setMasterId(unplannedreceiptRequestMainDO.getId()); @@ -120,20 +241,26 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR } private void validateDetailMethod(UnplannedreceiptRequestDetailDO detailDo, BusinesstypeDO businesstypeDO, UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO) { - detailDo.setCreateTime(LocalDateTime.now()); + // BQ——>QL + LocationDO toLocationDO = validatorLocation(detailDo.getToLocationCode()); + if(toLocationDO == null){ + throw exception(UNPLANNEDRECEIPT_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS, detailDo.getToLocationCode()); + } + // 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()); + detailDo.setProjectCode(itembasicDO.getProject()); + // DBT——>DBT2——>LO jobUtils.ifInToLocationType(detailDo.getToLocationCode(), businesstypeDO); + // DBT——>DBT2——>SO jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO); + detailDo.setCreateTime(LocalDateTime.now()); } - - private UnplannedreceiptRequestMainDO validateMainMethod(UnplannedreceiptRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = UnplannedreceiptRequestMainConvert.INSTANCE.convert(baseVO); unplannedreceiptRequestMainDO.setRequestTime(LocalDateTime.now()); @@ -155,9 +282,10 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR // 更新 UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); if(RequestStatusEnum.HANDLING.getCode().equals(unplannedreceiptRequestMainDO.getStatus())) { - + List detailDOList = unplannedreceiptRequestDetailMapper.selectList(unplannedreceiptRequestMainDO.getId()); + this.generateJob(unplannedreceiptRequestMainDO,detailDOList); } - trendsApi.createTrends(requestsettingDO.getId(), "TransferDeliverRequest", "增加了计划外入库申请", TrendsTypeEnum.CREATE); + trendsApi.createTrends(requestsettingDO.getId(), "UnplannedReceiptRequest", "增加了计划外入库申请", TrendsTypeEnum.CREATE); } private UnplannedreceiptRequestMainDO validatorToUpdate(UnplannedreceiptRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { @@ -189,10 +317,12 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR unplannedreceiptRequestMainMapper.deleteById(id); } - private void validateUnplannedreceiptRequestMainExists(Long id) { - if (unplannedreceiptRequestMainMapper.selectById(id) == null) { + private UnplannedreceiptRequestMainDO validateUnplannedreceiptRequestMainExists(Long id) { + UnplannedreceiptRequestMainDO unplannedreceiptRequestMainDO = unplannedreceiptRequestMainMapper.selectById(id); + if (unplannedreceiptRequestMainDO == null) { throw exception(UNPLANNEDRECEIPT_REQUEST_MAIN_NOT_EXISTS); } + return unplannedreceiptRequestMainDO; } @Override @@ -222,7 +352,7 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR } private LocationDO validatorLocation(String Location){ - return locationService.selectLocation(Location); + return locationService.selectLocation(Location); } private String validateUnplannedreceiptRequestMainImport(UnplannedreceiptRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { @@ -287,8 +417,115 @@ public class UnplannedreceiptRequestMainServiceImpl implements UnplannedreceiptR return unplannedreceiptRequestMainMapper.selectSeniorList(conditions); } + @Transactional + @Override + public Integer closeUnplannedreceiptRequestMain(Long id) { + // 校验存在存在下级单据 + UnplannedreceiptRequestMainDO mainDO = this.validateUnplannedreceiptRequestMainExists(id); + Long count = unplannedreceiptJobMainMapper.selectByRequestNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(UNPLANNEDRECEIPT_JOB_MAIN_EXISTS); + } + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.close(); + if(!flag) { + throw new ServiceException(UNPLANNEDRECEIPT_REQUEST_CANNOT_CLOSE); + } + mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "UnplannedReceiptRequest", "关闭了计划外入库申请", TrendsTypeEnum.UPDATE); + return unplannedreceiptRequestMainMapper.updateById(mainDO); + } + + @Transactional + @Override + public Integer reAddUnplannedreceiptRequestMain(Long id) { + // 校验存在存在下级单据 + UnplannedreceiptRequestMainDO mainDO = this.validateUnplannedreceiptRequestMainExists(id); + Long count = unplannedreceiptJobMainMapper.selectByRequestNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(UNPLANNEDRECEIPT_JOB_MAIN_EXISTS); + } + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.reAdd(); + if(!flag) { + throw new ServiceException(UNPLANNEDRECEIPT_REQUEST_CANNOT_RE_ADD); + } + mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "UnplannedReceiptRequest", "打开了计划外入库申请", TrendsTypeEnum.UPDATE); + return unplannedreceiptRequestMainMapper.updateById(mainDO); + } + + @Transactional + @Override + public Integer submitUnplannedreceiptRequestMain(Long id) { + UnplannedreceiptRequestMainDO mainDO = this.validateUnplannedreceiptRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); + if(!flag) { + throw new ServiceException(UNPLANNEDRECEIPT_REQUEST_CANNOT_SUBMIT); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + List detailDOList = unplannedreceiptRequestDetailMapper.selectList(mainDO.getId()); + this.generateJob(mainDO,detailDOList); + } + trendsApi.createTrends(id, "UnplannedReceiptRequest", "提交了计划外入库申请", TrendsTypeEnum.UPDATE); + return unplannedreceiptRequestMainMapper.updateById(mainDO); + } + @Transactional + @Override + public Integer abortUnplannedreceiptRequestMain(Long id) { + // 校验存在 + UnplannedreceiptRequestMainDO mainDO = this.validateUnplannedreceiptRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.refused(); + if(!flag) { + throw new ServiceException(UNPLANNEDRECEIPT_REQUEST_CANNOT_ABORT); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + trendsApi.createTrends(id, "UnplannedReceiptRequest", "审批拒绝了计划外入库申请", TrendsTypeEnum.UPDATE); + return unplannedreceiptRequestMainMapper.updateById(mainDO); + } + @Transactional + @Override + public Integer agreeUnplannedreceiptRequestMain(Long id) { + // 校验存在 + UnplannedreceiptRequestMainDO mainDO = this.validateUnplannedreceiptRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.agree(mainDO.getAutoAgree()); + if(!flag) { + throw new ServiceException(UNPLANNEDRECEIPT_REQUEST_CANNOT_AGREE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + List detailDOList = unplannedreceiptRequestDetailMapper.selectList(mainDO.getId()); + this.generateJob(mainDO,detailDOList); + } + trendsApi.createTrends(id, "UnplannedReceiptRequest", "审批同意了计划外入库申请", TrendsTypeEnum.UPDATE); + return unplannedreceiptRequestMainMapper.updateById(mainDO); + } + + @Transactional + @Override + public Integer handleUnplannedreceiptRequestMain(Long id) { + // 校验存在 + UnplannedreceiptRequestMainDO mainDO = this.validateUnplannedreceiptRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.handle(); + if(!flag) { + throw new ServiceException(UNPLANNEDRECEIPT_REQUEST_CANNOT_HANDLE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用执行方法 + List detailDOList = unplannedreceiptRequestDetailMapper.selectList(mainDO.getId()); + this.generateJob(mainDO,detailDOList); + trendsApi.createTrends(id, "UnplannedReceiptRequest", "执行了计划外入库申请", TrendsTypeEnum.UPDATE); + return unplannedreceiptRequestMainMapper.updateById(mainDO); + } public List importUnplannedreceiptRequestMainList(List datas, Integer mode, boolean updatePart) { if (CollUtil.isEmpty(datas)) {