Browse Source

计划外出库开发调试

master
赵雪冰 2 years ago
parent
commit
82c6b36228
  1. 11
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 41
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/UnplannedissueJobDetailController.java
  3. 76
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/UnplannedissueJobMainController.java
  4. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/vo/UnplannedissueJobDetailPageReqVO.java
  5. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueJob/vo/UnplannedissueJobMainUpdateReqVO.java
  6. 42
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/UnplannedissueRecordDetailController.java
  7. 39
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/UnplannedissueRecordMainController.java
  8. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordDetailBaseVO.java
  9. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordDetailExportReqVO.java
  10. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordDetailPageReqVO.java
  11. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRecord/vo/UnplannedissueRecordMainBaseVO.java
  12. 42
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/UnplannedissueRequestDetailController.java
  13. 108
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/UnplannedissueRequestMainController.java
  14. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestDetailExportReqVO.java
  15. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedissueRequest/vo/UnplannedissueRequestDetailPageReqVO.java
  16. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueJob/UnplannedissueJobDetailConvert.java
  17. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/unplannedissueJob/UnplannedissueJobMainConvert.java
  18. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/unplannedissueJob/UnplannedissueJobMainDO.java
  19. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueJob/UnplannedissueJobDetailMapper.java
  20. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueJob/UnplannedissueJobMainMapper.java
  21. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRecord/UnplannedissueRecordDetailMapper.java
  22. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRequest/UnplannedissueRequestDetailMapper.java
  23. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueJob/TransferissueJobMainServiceImpl.java
  24. 32
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java
  25. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobDetailService.java
  26. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobDetailServiceImpl.java
  27. 30
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobMainService.java
  28. 225
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobMainServiceImpl.java
  29. 43
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainService.java
  30. 331
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueRequest/UnplannedissueRequestMainServiceImpl.java

11
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, "计划外出库记录子不存在");

41
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)

76
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<Boolean> 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<Boolean> 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<Boolean> 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<String> executeUnplannedissueJobMain(@Valid @RequestBody UnplannedissueJobMainUpdateReqVO updateReqVO) {
String number = unplannedissueJobMainService.executeUnplannedissueJobMain(updateReqVO);
return success(number);
}
}

3
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;
}

10
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;
}

42
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<Long> 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')")

39
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<UnplannedissueRecordMainDO> 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')")

3
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;
}

3
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;
}

3
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;
}

2
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 = "从仓库代码")

42
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<UnplannedissueRequestDetailDO> 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')")

108
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<UnplannedissueRequestMainExcelVO> getExcelVo(List<UnplannedissueRequestMainDO> list, Map<Integer, String[]> 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<Boolean> 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<Boolean> 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<Boolean> 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<Boolean> 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<Boolean> 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<Boolean> handleUnplannedissueRequestMain(@RequestParam("id") Long id) {
Integer count = unplannedissueRequestMainService.handleUnplannedissueRequestMain(id);
return success(count > 0);
}
}

8
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;

3
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;
}

2
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<UnplannedissueJobDetailExcelVO> convertList02(List<UnplannedissueJobDetailDO> list);
UnplannedissueJobDetailDO convert(UnplannedissueRequestDetailDO unplannedissueRequestDetailDO);
}

2
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<UnplannedissueJobMainExcelVO> convertList02(List<UnplannedissueJobMainDO> list);
UnplannedissueJobMainDO convert(UnplannedissueRequestMainDO mainDO);
}

8
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;
}

6
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<Unplannedissu
.eqIfPresent(UnplannedissueJobDetailDO::getRemark, reqVO.getRemark())
.betweenIfPresent(UnplannedissueJobDetailDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(UnplannedissueJobDetailDO::getCreator, reqVO.getCreator())
.eqIfPresent(UnplannedissueJobDetailDO::getMasterId, reqVO.getMasterId())
.orderByDesc(UnplannedissueJobDetailDO::getId));
}
@ -71,4 +73,8 @@ public interface UnplannedissueJobDetailMapper extends BaseMapperX<Unplannedissu
.orderByDesc(UnplannedissueJobDetailDO::getId));
}
default List<UnplannedissueJobDetailDO> selectList(Long masterId){
return selectList(new LambdaQueryWrapperX<UnplannedissueJobDetailDO>()
.eq(UnplannedissueJobDetailDO::getMasterId, masterId));
}
}

7
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<UnplannedissueJ
}
default Long selectByRequestNumber(String requestNumber){
return selectCount(new LambdaQueryWrapperX<UnplannedissueJobMainDO>()
.eq(UnplannedissueJobMainDO::getRequestNumber, requestNumber)
.ne(UnplannedissueJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode()));
}
}

2
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<Unplannedi
.betweenIfPresent(UnplannedissueRecordDetailDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(UnplannedissueRecordDetailDO::getCreator, reqVO.getCreator())
.eqIfPresent(UnplannedissueRecordDetailDO::getJobDetailId, reqVO.getJobDetailId())
.eqIfPresent(UnplannedissueRecordDetailDO::getMasterId, reqVO.getMasterId())
.orderByDesc(UnplannedissueRecordDetailDO::getId));
}
@ -81,6 +82,7 @@ public interface UnplannedissueRecordDetailMapper extends BaseMapperX<Unplannedi
.betweenIfPresent(UnplannedissueRecordDetailDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(UnplannedissueRecordDetailDO::getCreator, reqVO.getCreator())
.eqIfPresent(UnplannedissueRecordDetailDO::getJobDetailId, reqVO.getJobDetailId())
.eqIfPresent(UnplannedissueRecordDetailDO::getMasterId, reqVO.getMasterId())
.orderByDesc(UnplannedissueRecordDetailDO::getId));
}

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/unplannedissueRequest/UnplannedissueRequestDetailMapper.java

@ -47,6 +47,7 @@ public interface UnplannedissueRequestDetailMapper extends BaseMapperX<Unplanned
.eqIfPresent(UnplannedissueRequestDetailDO::getUom, reqVO.getUom())
.betweenIfPresent(UnplannedissueRequestDetailDO::getUpdateTime, reqVO.getUpdateTime())
.eqIfPresent(UnplannedissueRequestDetailDO::getUpdater, reqVO.getUpdater())
.eqIfPresent(UnplannedissueRequestDetailDO::getMasterId, reqVO.getMasterId())
.orderByDesc(UnplannedissueRequestDetailDO::getId));
}

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

@ -3,6 +3,7 @@ package com.win.module.wms.service.transferissueJob;
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.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;
@ -13,14 +14,16 @@ import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.controller.transferissueJob.vo.*;
import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestDetailCreateReqVO;
import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainCreateReqVO;
import com.win.module.wms.convert.transferissueJob.TransferissueJobMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobDetailDO;
import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobMainDO;
import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordDetailDO;
import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordMainDO;
import com.win.module.wms.dal.mysql.transferissueJob.TransferissueJobMainMapper;
import com.win.module.wms.dal.mysql.transferissueRecord.TransferissueRecordDetailMapper;
import com.win.module.wms.dal.mysql.transferissueRecord.TransferissueRecordMainMapper;
import com.win.module.wms.enums.job.JobStatusState;
@ -34,25 +37,18 @@ 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;
import javax.validation.Valid;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobMainDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.convert.transferissueJob.TransferissueJobMainConvert;
import com.win.module.wms.dal.mysql.transferissueJob.TransferissueJobMainMapper;
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.*;
import static com.win.module.wms.enums.ErrorCodeConstants.TRANSFERISSUE_JOB_MAIN_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.TRANSFERISSUE_JOB_MAIN_STATUS_ERROR;
/**
* 调拨出库任务主 Service 实现类
@ -266,7 +262,6 @@ public class TransferissueJobMainServiceImpl implements TransferissueJobMainServ
List<TransferissueJobDetailUpdateReqVO> reqSubList = updateReqVO.getSubList();
List<TransferissueRecordDetailDO> transferissueRecordDetailDOList = new ArrayList<>();
List<TransferreceiptRequestDetailCreateReqVO> transferreceiptReqSubList = new ArrayList<>();
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();

32
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<TransferreceiptRequestDetailCreateReqVO> 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;
}
// 任务 主表数据创建

7
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<UnplannedissueJobDetailDO> getUnplannedissueJobDetailList(UnplannedissueJobDetailExportReqVO exportReqVO);
/**
* 获取子表数据
* @param id
* @return
*/
List<UnplannedissueJobDetailDO> selectList(Long id);
}

6
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<UnplannedissueJobDetailDO> selectList(Long masterId) {
return unplannedissueJobDetailMapper.selectList(masterId);
}
}

30
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<String,Integer> getCountByStatus(@Nullable Collection<String> 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);
}

225
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<UnplannedissueJobDetailDO> 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<UnplannedissueJobDetailUpdateReqVO> reqSubList = updateReqVO.getSubList();
List<UnplannedissueRecordDetailDO> unplannedissueRecordDetailDOList = new ArrayList<>();
//库存事务
List<TransactionCreateReqVO> 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;
}
}

43
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<UnplannedissueRequestDetailDO> selectList(Long masterId);
@ -96,4 +96,45 @@ public interface UnplannedissueRequestMainService {
List<UnplannedissueRequestMainDO> 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);
}

331
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,48 +97,164 @@ 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) {
// Setting-----QReqs
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("UnplannedDeliverRequest");
UnplannedissueRequestMainDO unplannedissueRequestMainDO = validatorToCreate(createReqVO,requestsettingDO);
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(unplannedissueRequestMainDO.getStatus())) {
List<UnplannedissueRequestDetailDO> 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<UnplannedissueRequestDetailDO> 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<ExpectinCreateReqVO> expectinCreateReqVOList = new ArrayList<>();
List<UnplannedissueJobDetailDO> 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<UnplannedissueRequestDetailCreateReqVO> subList = createReqVO.getSubList();
@ -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,29 +275,44 @@ public class UnplannedissueRequestMainServiceImpl implements UnplannedissueReque
private void validateDetailMethod(UnplannedissueRequestDetailDO detailDo, BusinesstypeDO businesstypeDO, UnplannedissueRequestMainDO mainDo) {
detailDo.setCreateTime(LocalDateTime.now());
// 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());
detailDo.setProjectCode(itembasicDO.getProject());
// DBT——>DBT2——>LO
jobUtils.ifInToLocationType(detailDo.getFromLocationCode(), businesstypeDO);
// DBT——>DBT2——>SO
jobUtils.ifOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO);
// TB——>TB1 校验库存余额是否存在
List<BalanceDO> 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<BalanceDO> validateBlanceDO(UnplannedissueRequestDetailDO detailDo) {
String INVENTORY = detailDo.getInventoryStatus();
String[] inventory = INVENTORY.split(",");
List<String> inventorystatus = Arrays.asList(inventory);
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(),inventorystatus);
for(BalanceDO balance: balanceDO){
mainDo.setFromWarehouseCode(balance.getWarehouseCode());
}
return balanceDO;
}
private UnplannedissueRequestMainDO validateMainMethod(UnplannedissueRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){
UnplannedissueRequestMainDO mainDo = UnplannedissueRequestMainConvert.INSTANCE.convert(baseVO);
mainDo.setRequestTime(LocalDateTime.now());
@ -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<UnplannedissueRequestDetailDO> 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<UnplannedissueRequestDetailDO> 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<UnplannedissueRequestDetailDO> 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<UnplannedissueRequestDetailDO> 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,10 +601,6 @@ public class UnplannedissueRequestMainServiceImpl implements UnplannedissueReque
return message.toString();
}
@Override
@Transactional
public List<UnplannedissueRequestMainImportErrorVO> importUnplannedissueRequestMainList(List<UnplannedissueRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {

Loading…
Cancel
Save