叶佳兴 2 years ago
parent
commit
7909d2777d
  1. 16
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/InventorychangeRecordMainController.java
  3. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/InventorychangeRequestDetailController.java
  4. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/InventorychangeRequestMainController.java
  5. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestDetailExportReqVO.java
  6. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestDetailPageReqVO.java
  7. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainImportVO.java
  8. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainPageReqVO.java
  9. 98
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/InventorymoveJobMainController.java
  10. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailBaseVO.java
  11. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailPageReqVO.java
  12. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailUpdateReqVO.java
  13. 74
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobMainExcelVO.java
  14. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobMainUpdateReqVO.java
  15. 54
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/InventorymoveRecordMainController.java
  16. 111
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainExcelVO.java
  17. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainExportReqVO.java
  18. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainPageReqVO.java
  19. 133
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/InventorymoveRequestMainController.java
  20. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestDetailExportReqVO.java
  21. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestDetailPageReqVO.java
  22. 84
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainExcelVO.java
  23. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainImportVO.java
  24. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainPageReqVO.java
  25. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveJob/InventorymoveJobMainConvert.java
  26. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRecord/InventorymoveRecordMainConvert.java
  27. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRequest/InventorymoveRequestMainConvert.java
  28. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveJob/InventorymoveJobMainDO.java
  29. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveRecord/InventorymoveRecordMainDO.java
  30. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveRequest/InventorymoveRequestMainDO.java
  31. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRequest/InventorychangeRequestDetailMapper.java
  32. 18
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRequest/InventorychangeRequestMainMapper.java
  33. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveJob/InventorymoveJobDetailMapper.java
  34. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveJob/InventorymoveJobMainMapper.java
  35. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRecord/InventorymoveRecordDetailMapper.java
  36. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRecord/InventorymoveRecordMainMapper.java
  37. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRequest/InventorymoveRequestDetailMapper.java
  38. 23
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRequest/InventorymoveRequestMainMapper.java
  39. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreceiptRequest/CustomerreceiptRequestMainServiceImpl.java
  40. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainService.java
  41. 402
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java
  42. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobDetailService.java
  43. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobDetailServiceImpl.java
  44. 31
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainService.java
  45. 278
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainServiceImpl.java
  46. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordDetailService.java
  47. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordDetailServiceImpl.java
  48. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainService.java
  49. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainServiceImpl.java
  50. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestDetailService.java
  51. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestDetailServiceImpl.java
  52. 44
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainService.java
  53. 806
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java

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

@ -135,6 +135,7 @@ public interface ErrorCodeConstants {
ErrorCode WAREHOUSE_AVAIABLE_NOT_EXISTS = new ErrorCode(1_033_000_003, "是否可用不存在"); ErrorCode WAREHOUSE_AVAIABLE_NOT_EXISTS = new ErrorCode(1_033_000_003, "是否可用不存在");
ErrorCode WAREHOUSE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_033_000_004, "导入仓库不能为空"); ErrorCode WAREHOUSE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_033_000_004, "导入仓库不能为空");
ErrorCode WAREHOUSE_STOCK_EXCEPTION = new ErrorCode(1_033_000_005, "库存问题【{}】"); ErrorCode WAREHOUSE_STOCK_EXCEPTION = new ErrorCode(1_033_000_005, "库存问题【{}】");
ErrorCode WAREHOUSE_AND_LOCATION_RELATION_EXCEPTION = new ErrorCode(1_033_000_006, "仓库与库位关系问题【{}】");
//月台ErrorCode //月台ErrorCode
ErrorCode DOCK_NOT_EXISTS = new ErrorCode(1_000_034_000, "月台(收货口)不存在"); ErrorCode DOCK_NOT_EXISTS = new ErrorCode(1_000_034_000, "月台(收货口)不存在");
ErrorCode DOCK_CODE_NOT_EXISTS = new ErrorCode(1_000_034_001, "代码不存在"); ErrorCode DOCK_CODE_NOT_EXISTS = new ErrorCode(1_000_034_001, "代码不存在");
@ -855,6 +856,13 @@ public interface ErrorCodeConstants {
//库存转移申请ErrorCode //库存转移申请ErrorCode
ErrorCode INVENTORYMOVE_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_131_000, "库存转移申请主不存在"); ErrorCode INVENTORYMOVE_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_131_000, "库存转移申请主不存在");
ErrorCode INVENTORYMOVE_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_131_001, "库存转移申请子不存在"); ErrorCode INVENTORYMOVE_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_131_001, "库存转移申请子不存在");
ErrorCode INVENTORYMOVE_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_131_002, "导入库存转移申请不能为空");
ErrorCode INVENTORYMOVE_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_131_003, "库存转移申请状态不支持关闭");
ErrorCode INVENTORYMOVE_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_131_004, "库存转移申请状态不支持提交");
ErrorCode INVENTORYMOVE_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_131_005, "库存转移申请状态不支持审批同意");
ErrorCode INVENTORYMOVE_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_131_006, "库存转移申请状态不支持处理");
ErrorCode INVENTORYMOVE_REQUEST_CANNOT_ABORT = new ErrorCode(1_000_131_007, "库存转移申请状态不支持审批拒绝");
ErrorCode INVENTORYMOVE_REQUEST_CANNOT_RE_ADD = new ErrorCode(1_000_131_008, "库存转移申请状态不支持重新添加");
//库存转移任务ErrorCode //库存转移任务ErrorCode
ErrorCode INVENTORYMOVE_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_132_000, "库存转移任务主不存在"); ErrorCode INVENTORYMOVE_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_132_000, "库存转移任务主不存在");
ErrorCode INVENTORYMOVE_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_132_001, "库存转移任务子不存在"); ErrorCode INVENTORYMOVE_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_132_001, "库存转移任务子不存在");
@ -865,7 +873,13 @@ public interface ErrorCodeConstants {
//库存修改申请ErrorCode //库存修改申请ErrorCode
ErrorCode INVENTORYCHANGE_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_134_000, "库存修改申请主不存在"); ErrorCode INVENTORYCHANGE_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_134_000, "库存修改申请主不存在");
ErrorCode INVENTORYCHANGE_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_134_001, "库存修改申请子不存在"); ErrorCode INVENTORYCHANGE_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_134_001, "库存修改申请子不存在");
ErrorCode INVENTORYCHANGE_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_134_001, "导入库存修改申请不能为空"); ErrorCode INVENTORYCHANGE_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_134_002, "导入库存修改申请不能为空");
ErrorCode INVENTORYCHANGE_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_134_003, "库存修改申请状态不支持关闭");
ErrorCode INVENTORYCHANGE_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_134_004, "库存修改申请状态不支持提交");
ErrorCode INVENTORYCHANGE_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_134_005, "库存修改申请状态不支持审批同意");
ErrorCode INVENTORYCHANGE_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_134_006, "库存修改申请状态不支持处理");
ErrorCode INVENTORYCHANGE_REQUEST_CANNOT_ABORT = new ErrorCode(1_000_134_007, "库存修改申请状态不支持审批拒绝");
ErrorCode INVENTORYCHANGE_REQUEST_CANNOT_RE_ADD = new ErrorCode(1_000_134_008, "库存修改申请状态不支持重新添加");
//库存修改记录ErrorCode //库存修改记录ErrorCode
ErrorCode INVENTORYCHANGE_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_135_000, "库存修改记录主不存在"); ErrorCode INVENTORYCHANGE_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_135_000, "库存修改记录主不存在");
ErrorCode INVENTORYCHANGE_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_135_001, "库存修改记录子不存在"); ErrorCode INVENTORYCHANGE_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_135_001, "库存修改记录子不存在");

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/InventorychangeRecordMainController.java

@ -2,6 +2,7 @@ package com.win.module.wms.controller.inventorychangeRecord;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.system.api.dept.DeptApi;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.inventorychangeRequest.vo.InventorychangeRequestMainExcelVO; import com.win.module.wms.controller.inventorychangeRequest.vo.InventorychangeRequestMainExcelVO;
@ -51,6 +52,8 @@ public class InventorychangeRecordMainController {
@Resource @Resource
private AdminUserApi userApi; private AdminUserApi userApi;
@Resource
private DeptApi deptApi;
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建库存修改记录主") @Operation(summary = "创建库存修改记录主")
@ -99,7 +102,14 @@ public class InventorychangeRecordMainController {
@PreAuthorize("@ss.hasPermission('wms:inventorychange-record-main:query')") @PreAuthorize("@ss.hasPermission('wms:inventorychange-record-main:query')")
public CommonResult<PageResult<InventorychangeRecordMainRespVO>> getInventorychangeRecordMainPage(@Valid InventorychangeRecordMainPageReqVO pageVO) { public CommonResult<PageResult<InventorychangeRecordMainRespVO>> getInventorychangeRecordMainPage(@Valid InventorychangeRecordMainPageReqVO pageVO) {
PageResult<InventorychangeRecordMainDO> pageResult = inventorychangeRecordMainService.getInventorychangeRecordMainPage(pageVO); PageResult<InventorychangeRecordMainDO> pageResult = inventorychangeRecordMainService.getInventorychangeRecordMainPage(pageVO);
return success(InventorychangeRecordMainConvert.INSTANCE.convertPage(pageResult)); PageResult<InventorychangeRecordMainRespVO> result = InventorychangeRecordMainConvert.INSTANCE.convertPage(pageResult);
for(InventorychangeRecordMainRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
vo.setDepartmentCode(deptApi.getDept(user.getDeptId()).toString());
}
return success(result);
} }
@PostMapping("/senior") @PostMapping("/senior")
@ -112,6 +122,7 @@ public class InventorychangeRecordMainController {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); vo.setCreator(user.getNickname());
vo.setDepartmentCode(deptApi.getDept(user.getDeptId()).toString());
} }
return success(result); return success(result);
} }
@ -162,6 +173,7 @@ public class InventorychangeRecordMainController {
InventorychangeRecordMainExcelVO vo = InventorychangeRecordMainConvert.INSTANCE.convert(mainDO, detailDO); InventorychangeRecordMainExcelVO vo = InventorychangeRecordMainConvert.INSTANCE.convert(mainDO, detailDO);
vo.setCreator(userApi.getUser(Long.valueOf(mainDO.getCreator())).getNickname()); vo.setCreator(userApi.getUser(Long.valueOf(mainDO.getCreator())).getNickname());
vo.setCreatorDetail(userApi.getUser(Long.valueOf(detailDO.getCreator())).getNickname()); vo.setCreatorDetail(userApi.getUser(Long.valueOf(detailDO.getCreator())).getNickname());
vo.setDepartmentCode(deptApi.getDept(userApi.getUser(Long.valueOf(mainDO.getCreator())).getDeptId()).toString());
resultList.add(vo); resultList.add(vo);
} }
} }

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/InventorychangeRequestDetailController.java

@ -3,6 +3,7 @@ package com.win.module.wms.controller.inventorychangeRequest;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.convert.inventorychangeRequest.InventorychangeRequestMainConvert;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -89,7 +90,13 @@ public class InventorychangeRequestDetailController {
@PreAuthorize("@ss.hasPermission('wms:inventorychange-request-detail:query')") @PreAuthorize("@ss.hasPermission('wms:inventorychange-request-detail:query')")
public CommonResult<PageResult<InventorychangeRequestDetailRespVO>> getInventorychangeRequestDetailPage(@Valid InventorychangeRequestDetailPageReqVO pageVO) { public CommonResult<PageResult<InventorychangeRequestDetailRespVO>> getInventorychangeRequestDetailPage(@Valid InventorychangeRequestDetailPageReqVO pageVO) {
PageResult<InventorychangeRequestDetailDO> pageResult = inventorychangeRequestDetailService.getInventorychangeRequestDetailPage(pageVO); PageResult<InventorychangeRequestDetailDO> pageResult = inventorychangeRequestDetailService.getInventorychangeRequestDetailPage(pageVO);
return success(InventorychangeRequestDetailConvert.INSTANCE.convertPage(pageResult)); PageResult<InventorychangeRequestDetailRespVO> result = InventorychangeRequestDetailConvert.INSTANCE.convertPage(pageResult);
for(InventorychangeRequestDetailRespVO vo : result.getList()) {
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname());
}
return success(result);
} }
@PostMapping("/senior") @PostMapping("/senior")
@Operation(summary = "高级搜索获得库存修改申请子分页") @Operation(summary = "高级搜索获得库存修改申请子分页")
@ -98,9 +105,8 @@ public class InventorychangeRequestDetailController {
PageResult<InventorychangeRequestDetailDO> pageResult = inventorychangeRequestDetailService.getInventorychangeRequestDetailSenior(conditions); PageResult<InventorychangeRequestDetailDO> pageResult = inventorychangeRequestDetailService.getInventorychangeRequestDetailSenior(conditions);
PageResult<InventorychangeRequestDetailRespVO> result = InventorychangeRequestDetailConvert.INSTANCE.convertPage(pageResult); PageResult<InventorychangeRequestDetailRespVO> result = InventorychangeRequestDetailConvert.INSTANCE.convertPage(pageResult);
for(InventorychangeRequestDetailRespVO vo : result.getList()) { for(InventorychangeRequestDetailRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
//后端创建个字段作为前端展示的虚拟字段 vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname());
vo.setCreator(user.getNickname());
} }
return success(result); return success(result);
} }

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/InventorychangeRequestMainController.java

@ -7,6 +7,7 @@ import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ConvertUtil; import com.win.framework.excel.core.util.ConvertUtil;
import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.dept.DeptApi;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainExcelVO; import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainExcelVO;
@ -55,6 +56,9 @@ public class InventorychangeRequestMainController {
@Resource @Resource
private AdminUserApi userApi; private AdminUserApi userApi;
@Resource
private DeptApi deptApi;
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建库存修改申请主") @Operation(summary = "创建库存修改申请主")
@PreAuthorize("@ss.hasPermission('wms:inventorychange-request-main:create')") @PreAuthorize("@ss.hasPermission('wms:inventorychange-request-main:create')")
@ -105,9 +109,8 @@ public class InventorychangeRequestMainController {
PageResult<InventorychangeRequestMainDO> pageResult = inventorychangeRequestMainService.getInventorychangeRequestMainPage(pageVO); PageResult<InventorychangeRequestMainDO> pageResult = inventorychangeRequestMainService.getInventorychangeRequestMainPage(pageVO);
PageResult<InventorychangeRequestMainRespVO> result = InventorychangeRequestMainConvert.INSTANCE.convertPage(pageResult); PageResult<InventorychangeRequestMainRespVO> result = InventorychangeRequestMainConvert.INSTANCE.convertPage(pageResult);
for(InventorychangeRequestMainRespVO vo : result.getList()) { for(InventorychangeRequestMainRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
//后端创建个字段作为前端展示的虚拟字段 vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname());
vo.setCreator(user.getNickname());
} }
return success(result); return success(result);
} }
@ -121,6 +124,8 @@ public class InventorychangeRequestMainController {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); vo.setCreator(user.getNickname());
vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname());
vo.setDepartmentCode(deptApi.getDept(user.getDeptId()).getName());
} }
return success(result); return success(result);
} }
@ -179,6 +184,7 @@ public class InventorychangeRequestMainController {
vo.setUpdater(userApi.getUser(Long.valueOf(mainDO.getUpdater())).getNickname()); vo.setUpdater(userApi.getUser(Long.valueOf(mainDO.getUpdater())).getNickname());
vo.setCreatorDetail(userApi.getUser(Long.valueOf(detailDO.getCreator())).getNickname()); vo.setCreatorDetail(userApi.getUser(Long.valueOf(detailDO.getCreator())).getNickname());
vo.setUpdaterDetail(userApi.getUser(Long.valueOf(detailDO.getUpdater())).getNickname()); vo.setUpdaterDetail(userApi.getUser(Long.valueOf(detailDO.getUpdater())).getNickname());
vo.setDepartmentCode(deptApi.getDept(userApi.getUser(Long.valueOf(mainDO.getCreator())).getDeptId()).getName());
resultList.add(vo); resultList.add(vo);
} }
} }
@ -197,13 +203,11 @@ public class InventorychangeRequestMainController {
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response, public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file, @RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode, @RequestParam(value = "mode") Integer mode,
@RequestParam(value = "fromInventoryStatus") String fromInventoryStatus ,
@RequestParam(value = "toInventoryStatus") String toInventoryStatus ,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<InventorychangeRequestMainImportVO> list = ExcelUtils.read(file, InventorychangeRequestMainImportVO.class); List<InventorychangeRequestMainImportVO> list = ExcelUtils.read(file, InventorychangeRequestMainImportVO.class);
ConvertUtil<InventorychangeRequestMainCreateReqVO> convertUtil = new ConvertUtil<>(InventorychangeRequestMainCreateReqVO.class); ConvertUtil<InventorychangeRequestMainCreateReqVO> convertUtil = new ConvertUtil<>(InventorychangeRequestMainCreateReqVO.class);
List<InventorychangeRequestMainCreateReqVO> createReqVOList = convertUtil.invoke(list).getDataList(); List<InventorychangeRequestMainCreateReqVO> createReqVOList = convertUtil.invoke(list).getDataList();
List<InventorychangeRequestMainImportErrorVO> errorList = inventorychangeRequestMainService.importInventorychangeRequestMainList(createReqVOList, mode, fromInventoryStatus, toInventoryStatus, updatePart); List<InventorychangeRequestMainImportErrorVO> errorList = inventorychangeRequestMainService.importInventorychangeRequestMainList(createReqVOList, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>(); Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size()); returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) { if(!errorList.isEmpty()) {

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestDetailExportReqVO.java

@ -131,4 +131,7 @@ public class InventorychangeRequestDetailExportReqVO {
@Schema(description = "物品代码") @Schema(description = "物品代码")
private String itemCode; private String itemCode;
@Schema(description = "主表id")
private Long masterId;
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestDetailPageReqVO.java

@ -133,4 +133,6 @@ public class InventorychangeRequestDetailPageReqVO extends PageParam {
@Schema(description = "物品代码") @Schema(description = "物品代码")
private String itemCode; private String itemCode;
@Schema(description = "主表id")
private Long masterId;
} }

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainImportVO.java

@ -1,11 +1,16 @@
package com.win.module.wms.controller.inventorychangeRequest.vo; package com.win.module.wms.controller.inventorychangeRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.time.LocalDateTime;
/** /**
* 采购索赔申请子 Excel VO * 采购索赔申请子 Excel VO
@ -30,6 +35,14 @@ public class InventorychangeRequestMainImportVO {
private String fromContainerNumber; private String fromContainerNumber;
@ExcelProperty("批次") @ExcelProperty("批次")
private String fromBatch; private String fromBatch;
@ExcelProperty(value = "从库存状态",converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String fromInventoryStatus;
@ExcelProperty(value = "到库存状态",converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String toInventoryStatus;
@ExcelProperty("来源库位") @ExcelProperty("来源库位")
private String locationCode; private String locationCode;
@ExcelProperty("截止时间")
private LocalDateTime dueTime;
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainPageReqVO.java

@ -67,10 +67,4 @@ public class InventorychangeRequestMainPageReqVO extends PageParam {
@Schema(description = "直接生成记录") @Schema(description = "直接生成记录")
private String directCreateRecord; private String directCreateRecord;
@Schema(description = "从库存状态")
private String fromInventoryStatus;
@Schema(description = "到库存状态")
private String toInventoryStatus;
} }

98
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/InventorymoveJobMainController.java

@ -1,10 +1,16 @@
package com.win.module.wms.controller.inventorymoveJob; package com.win.module.wms.controller.inventorymoveJob;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainExcelVO;
import com.win.module.wms.convert.inventorymoveJob.InventorymoveJobDetailConvert; import com.win.module.wms.convert.inventorymoveJob.InventorymoveJobDetailConvert;
import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.inventorymoveJob.InventorymoveJobDetailService; import com.win.module.wms.service.inventorymoveJob.InventorymoveJobDetailService;
import jodd.util.StringUtil; import jodd.util.StringUtil;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -106,30 +112,63 @@ public class InventorymoveJobMainController {
PageResult<InventorymoveJobMainDO> pageResult = inventorymoveJobMainService.getInventorymoveJobMainSenior(conditions); PageResult<InventorymoveJobMainDO> pageResult = inventorymoveJobMainService.getInventorymoveJobMainSenior(conditions);
PageResult<InventorymoveJobMainRespVO> result = InventorymoveJobMainConvert.INSTANCE.convertPage(pageResult); PageResult<InventorymoveJobMainRespVO> result = InventorymoveJobMainConvert.INSTANCE.convertPage(pageResult);
for(InventorymoveJobMainRespVO vo : result.getList()) { for(InventorymoveJobMainRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
} vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname()); }
return success(result); return success(result);
} }
@GetMapping("/export-excel") @GetMapping("/export-excel")
@Operation(summary = "导出库存转移任务 Excel") @Operation(summary = "导出库存转移任务 Excel")
@PreAuthorize("@ss.hasPermission('wms:inventorymove-job-main:export')") @PreAuthorize("@ss.hasPermission('wms:inventorymove-job-main:export')")
@OperateLog(type = EXPORT) @OperateLog(type = EXPORT)
public void exportInventorymoveJobMainExcel(@Valid InventorymoveJobMainExportReqVO exportReqVO, public void exportInventorymoveJobMainExcel(@Valid InventorymoveJobMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException { HttpServletResponse response) throws IOException {
List<InventorymoveJobMainDO> list = inventorymoveJobMainService.getInventorymoveJobMainList(exportReqVO); List<InventorymoveJobMainDO> list = inventorymoveJobMainService.getInventorymoveJobMainList(exportReqVO);
// 导出 Excel Map<Integer, String[]> mapDropDown = new HashMap<>();
List<InventorymoveJobMainExcelVO> datas = InventorymoveJobMainConvert.INSTANCE.convertList02(list); List<InventorymoveJobMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
for(InventorymoveJobMainExcelVO vo : datas) { ExcelUtils.write(response, "库存转移任务.xlsx", "库存转移任务数据", InventorymoveJobMainExcelVO.class, resultList, mapDropDown);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); }
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); @GetMapping("/export-excel-senior")
} @Operation(summary = "导出库存转移任务 Excel")
ExcelUtils.write(response, "库存转移任务主.xls", "数据", InventorymoveJobMainExcelVO.class, datas); @PreAuthorize("@ss.hasPermission('wms:inventorymove-job-main:export')")
@OperateLog(type = EXPORT)
public void exportInventorymoveJobMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<InventorymoveJobMainDO> list = inventorymoveJobMainService.getInventorymoveJobMainList(conditions);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<InventorymoveJobMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "库存转移任务.xlsx", "库存转移任务数据", InventorymoveJobMainExcelVO.class, resultList, mapDropDown);
} }
private List<InventorymoveJobMainExcelVO> getExcelVo(List<InventorymoveJobMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] requestStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.REQUEST_STATUS);
mapDropDown.put(8, requestStatus);
String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE);
mapDropDown.put(12, locationType);
mapDropDown.put(15, locationType);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(27, inventoryStatus);
mapDropDown.put(33, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(42, uom);
List<InventorymoveJobMainExcelVO> resultList = new ArrayList<>();
// 导出
for(InventorymoveJobMainDO mainDO : list) {
List<InventorymoveJobDetailDO> subList = inventorymoveJobDetailService.selectList(mainDO.getId());
for(InventorymoveJobDetailDO detailDO : subList) {
InventorymoveJobMainExcelVO vo = InventorymoveJobMainConvert.INSTANCE.convert(mainDO, detailDO);
vo.setCreator(userApi.getUser(Long.valueOf(mainDO.getCreator())).getNickname());
vo.setUpdater(userApi.getUser(Long.valueOf(mainDO.getUpdater())).getNickname());
vo.setAcceptUserId(userApi.getUser(Long.valueOf(mainDO.getAcceptUserId())).getNickname());
vo.setCompleteUserId(userApi.getUser(Long.valueOf(mainDO.getCompleteUserId())).getNickname());
vo.setCreatorDetail(userApi.getUser(Long.valueOf(detailDO.getCreator())).getNickname());
resultList.add(vo);
}
}
return resultList;
}
@GetMapping("/getInventorymoveJobById") @GetMapping("/getInventorymoveJobById")
@Operation(summary = "APP获得库存转移主子表明细列表") @Operation(summary = "APP获得库存转移主子表明细列表")
@Parameter(name = "id", description = "编号", required = true, example = "1024") @Parameter(name = "id", description = "编号", required = true, example = "1024")
@ -163,4 +202,39 @@ public class InventorymoveJobMainController {
return success(countByStatus); return success(countByStatus);
} }
@PutMapping("/accept")
@Operation(summary = "承接库存转移任务")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inventorymove-job-main:accept')")
public CommonResult<Boolean> acceptInventorymoveJobMain(@RequestParam("id") Long id) {
Integer count = inventorymoveJobMainService.acceptInventorymoveJobMain(id);
return success(count > 0);
}
@PutMapping("/abandon")
@Operation(summary = "取消承接库存转移任务")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inventorymove-job-main:abandon')")
public CommonResult<Boolean> abandonInventorymoveJobMain(@RequestParam("id") Long id) {
Integer count = inventorymoveJobMainService.abandonInventorymoveJobMain(id);
return success(count > 0);
}
@PutMapping("/close")
@Operation(summary = "关闭库存转移任务主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inventorymove-job-main:close')")
public CommonResult<Boolean> closeInventorymoveJobMain(@RequestParam("id") Long id) {
Integer count = inventorymoveJobMainService.closeInventorymoveJobMain(id);
return success(count > 0);
}
@PutMapping("/execute")
@Operation(summary = "执行库存转移任务主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inventorymove-job-main:execute')")
public CommonResult<String> executeInventorymoveJobMain(@Valid @RequestBody InventorymoveJobMainUpdateReqVO updateReqVO) {
String number = inventorymoveJobMainService.executeInventorymoveJobMain(updateReqVO);
return success(number);
}
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailBaseVO.java

@ -49,7 +49,7 @@ public class InventorymoveJobDetailBaseVO {
@Schema(description = "创建时间") @Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createtime; private LocalDateTime createTime;
@Schema(description = "创建者Id") @Schema(description = "创建者Id")
private String creator; private String creator;

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailPageReqVO.java

@ -81,4 +81,7 @@ public class InventorymoveJobDetailPageReqVO extends PageParam {
@Schema(description = "到货主代码") @Schema(description = "到货主代码")
private String toOwnerCode; private String toOwnerCode;
@Schema(description = "主表id")
private String masterId;
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailUpdateReqVO.java

@ -3,10 +3,14 @@ package com.win.module.wms.controller.inventorymoveJob.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.List;
import java.util.Map;
@Schema(description = "管理后台 - 库存转移任务子更新 Request VO") @Schema(description = "管理后台 - 库存转移任务子更新 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class InventorymoveJobDetailUpdateReqVO extends InventorymoveJobDetailBaseVO { public class InventorymoveJobDetailUpdateReqVO extends InventorymoveJobDetailBaseVO {
@Schema(description = "子表记录数据")
private List<Map<String,String>> recordList;
} }

74
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobMainExcelVO.java

@ -1,7 +1,10 @@
package com.win.module.wms.controller.inventorymoveJob.vo; package com.win.module.wms.controller.inventorymoveJob.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -24,6 +27,7 @@ import com.win.framework.excel.core.convert.DictConvert;
@Data @Data
public class InventorymoveJobMainExcelVO { public class InventorymoveJobMainExcelVO {
//主表数据
@ExcelProperty("申请单号") @ExcelProperty("申请单号")
private String requestNumber; private String requestNumber;
@ -35,9 +39,11 @@ public class InventorymoveJobMainExcelVO {
private String fromWarehouseCode; private String fromWarehouseCode;
@ExcelProperty("申请时间") @ExcelProperty("申请时间")
@ColumnWidth(value = 22)
private LocalDateTime requestTime; private LocalDateTime requestTime;
@ExcelProperty("要求截止时间") @ExcelProperty("要求截止时间")
@ColumnWidth(value = 22)
private LocalDateTime requestDueTime; private LocalDateTime requestDueTime;
@ExcelProperty(value = "状态", converter = DictConvert.class) @ExcelProperty(value = "状态", converter = DictConvert.class)
@ -45,9 +51,11 @@ public class InventorymoveJobMainExcelVO {
private String status; private String status;
@ExcelProperty("过期时间") @ExcelProperty("过期时间")
@ColumnWidth(value = 22)
private LocalDateTime expiredTime; private LocalDateTime expiredTime;
@ExcelProperty("最后更新时间") @ExcelProperty("最后更新时间")
@ColumnWidth(value = 22)
private LocalDateTime updateTime; private LocalDateTime updateTime;
@ExcelProperty("最后更新者Id") @ExcelProperty("最后更新者Id")
@ -70,12 +78,14 @@ public class InventorymoveJobMainExcelVO {
private String acceptUserId; private String acceptUserId;
@ExcelProperty("承接时间") @ExcelProperty("承接时间")
@ColumnWidth(value = 22)
private LocalDateTime acceptTime; private LocalDateTime acceptTime;
@ExcelProperty("完成人用户ID") @ExcelProperty("完成人用户ID")
private String completeUserId; private String completeUserId;
@ExcelProperty("完成时间") @ExcelProperty("完成时间")
@ColumnWidth(value = 22)
private LocalDateTime completeTime; private LocalDateTime completeTime;
@ExcelProperty(value = "从库位类型范围", converter = DictConvert.class) @ExcelProperty(value = "从库位类型范围", converter = DictConvert.class)
@ -96,6 +106,7 @@ public class InventorymoveJobMainExcelVO {
private String remark; private String remark;
@ExcelProperty("创建时间") @ExcelProperty("创建时间")
@ColumnWidth(value = 22)
private LocalDateTime createTime; private LocalDateTime createTime;
@ExcelProperty("创建者id") @ExcelProperty("创建者id")
@ -143,4 +154,67 @@ public class InventorymoveJobMainExcelVO {
@ExcelProperty("允许修改箱码") @ExcelProperty("允许修改箱码")
private String allowModifyPackingNumber; private String allowModifyPackingNumber;
//子表数据
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("物品名称")
private String itemName;
@ExcelProperty("物品描述1")
private String itemDesc1;
@ExcelProperty("物品描述2")
private String itemDesc2;
@ExcelProperty("项目代码")
private String projectCode;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String uom;
@ExcelProperty("备注")
private String remarkDetail;
@ExcelProperty("创建时间")
@ColumnWidth(value = 22)
private LocalDateTime createTimeDetail;
@ExcelProperty("创建者Id")
private String creatorDetail;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@ExcelProperty(value = "库存状态", converter = DictConvert.class)
@DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String inventoryStatus;
@ExcelProperty("订单号")
private String poNumber;
@ExcelProperty("订单行")
private String poLine;
@ExcelProperty("从库位代码")
private String fromLocationCode;
@ExcelProperty("到库位代码")
private String toLocationCode;
@ExcelProperty("从货主代码")
private String fromOwnerCode;
@ExcelProperty("到货主代码")
private String toOwnerCode;
} }

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobMainUpdateReqVO.java

@ -1,12 +1,17 @@
package com.win.module.wms.controller.inventorymoveJob.vo; package com.win.module.wms.controller.inventorymoveJob.vo;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobDetailUpdateReqVO;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import javax.validation.Valid;
import java.util.List;
@Schema(description = "管理后台 - 库存转移任务主更新 Request VO") @Schema(description = "管理后台 - 库存转移任务主更新 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class InventorymoveJobMainUpdateReqVO extends InventorymoveJobMainBaseVO { public class InventorymoveJobMainUpdateReqVO extends InventorymoveJobMainBaseVO {
@Schema(description = "子表数据")
private List<@Valid InventorymoveJobDetailUpdateReqVO> subList;
} }

54
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/InventorymoveRecordMainController.java

@ -1,8 +1,17 @@
package com.win.module.wms.controller.inventorymoveRecord; package com.win.module.wms.controller.inventorymoveRecord;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainExcelVO;
import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainRespVO;
import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert;
import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.inventorymoveRecord.InventorymoveRecordDetailService;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -38,6 +47,8 @@ public class InventorymoveRecordMainController {
@Resource @Resource
private InventorymoveRecordMainService inventorymoveRecordMainService; private InventorymoveRecordMainService inventorymoveRecordMainService;
@Resource
private InventorymoveRecordDetailService inventorymoveRecordDetailService;
@Resource @Resource
private AdminUserApi userApi; private AdminUserApi userApi;
@ -99,9 +110,8 @@ public class InventorymoveRecordMainController {
PageResult<InventorymoveRecordMainDO> pageResult = inventorymoveRecordMainService.getInventorymoveRecordMainSenior(conditions); PageResult<InventorymoveRecordMainDO> pageResult = inventorymoveRecordMainService.getInventorymoveRecordMainSenior(conditions);
PageResult<InventorymoveRecordMainRespVO> result = InventorymoveRecordMainConvert.INSTANCE.convertPage(pageResult); PageResult<InventorymoveRecordMainRespVO> result = InventorymoveRecordMainConvert.INSTANCE.convertPage(pageResult);
for(InventorymoveRecordMainRespVO vo : result.getList()) { for(InventorymoveRecordMainRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
} }
return success(result); return success(result);
} }
@ -122,4 +132,44 @@ public class InventorymoveRecordMainController {
ExcelUtils.write(response, "库存转移记录主.xls", "数据", InventorymoveRecordMainExcelVO.class, datas); ExcelUtils.write(response, "库存转移记录主.xls", "数据", InventorymoveRecordMainExcelVO.class, datas);
} }
@GetMapping("/export-excel-senior")
@Operation(summary = "导出库存转移申请 Excel")
@PreAuthorize("@ss.hasPermission('wms:inventorymove-record-main:export')")
@OperateLog(type = EXPORT)
public void exportInventorymoveRecordMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<InventorymoveRecordMainDO> list = inventorymoveRecordMainService.getInventorymoveRecordMainList(conditions);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<InventorymoveRecordMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "库存转移申请.xlsx", "库存转移申请数据", InventorymoveRecordMainExcelVO.class, resultList, mapDropDown);
}
private List<InventorymoveRecordMainExcelVO> getExcelVo(List<InventorymoveRecordMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] trueFalse = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(3, trueFalse);
mapDropDown.put(23, trueFalse);
String[] interfaceType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INTERFACE_TYPE);
mapDropDown.put(11, interfaceType);
mapDropDown.put(48, interfaceType);
String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE);
mapDropDown.put(18, locationType);
mapDropDown.put(21, locationType);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(32, inventoryStatus);
mapDropDown.put(40, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(46, uom);
List<InventorymoveRecordMainExcelVO> resultList = new ArrayList<>();
// 导出
for(InventorymoveRecordMainDO mainDO : list) {
List<InventorymoveRecordDetailDO> subList = inventorymoveRecordDetailService.selectList(mainDO.getId());
for(InventorymoveRecordDetailDO detailDO : subList) {
InventorymoveRecordMainExcelVO vo = InventorymoveRecordMainConvert.INSTANCE.convert(mainDO, detailDO);
vo.setCreator(userApi.getUser(Long.valueOf(mainDO.getCreator())).getNickname());
vo.setCreatorDetail(userApi.getUser(Long.valueOf(detailDO.getCreator())).getNickname());
resultList.add(vo);
}
}
return resultList;
}
} }

111
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainExcelVO.java

@ -1,7 +1,10 @@
package com.win.module.wms.controller.inventorymoveRecord.vo; package com.win.module.wms.controller.inventorymoveRecord.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -22,6 +25,9 @@ import com.win.framework.excel.core.convert.DictConvert;
@Data @Data
public class InventorymoveRecordMainExcelVO { public class InventorymoveRecordMainExcelVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("申请单号") @ExcelProperty("申请单号")
private String requestNumber; private String requestNumber;
@ -39,15 +45,19 @@ public class InventorymoveRecordMainExcelVO {
private String inTransactionType; private String inTransactionType;
@ExcelProperty("执行时间") @ExcelProperty("执行时间")
@ColumnWidth(value = 22)
private LocalDateTime executeTime; private LocalDateTime executeTime;
@ExcelProperty("生效日期") @ExcelProperty("生效日期")
@ColumnWidth(value = 22)
private LocalDateTime activeDate; private LocalDateTime activeDate;
@ExcelProperty("申请时间") @ExcelProperty("申请时间")
@ColumnWidth(value = 22)
private LocalDateTime requestTime; private LocalDateTime requestTime;
@ExcelProperty("截止时间") @ExcelProperty("截止时间")
@ColumnWidth(value = 22)
private LocalDateTime dueTime; private LocalDateTime dueTime;
@ExcelProperty("部门") @ExcelProperty("部门")
@ -60,9 +70,6 @@ public class InventorymoveRecordMainExcelVO {
@ExcelProperty("代码") @ExcelProperty("代码")
private String code; private String code;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("业务类型") @ExcelProperty("业务类型")
private String businessType; private String businessType;
@ -70,6 +77,7 @@ public class InventorymoveRecordMainExcelVO {
private String remark; private String remark;
@ExcelProperty("创建时间") @ExcelProperty("创建时间")
@ColumnWidth(value = 22)
private LocalDateTime createTime; private LocalDateTime createTime;
@ExcelProperty("创建者Id") @ExcelProperty("创建者Id")
@ -95,7 +103,102 @@ public class InventorymoveRecordMainExcelVO {
@ExcelProperty("到库区代码范围") @ExcelProperty("到库区代码范围")
private String toAreaCodes; private String toAreaCodes;
@ExcelProperty("是否可用") @ExcelProperty(value = "是否可用", converter = DictConvert.class)
@DictFormat("true_false") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String available; private String available;
//子表
@ExcelProperty("在途库库位")
private String onTheWayLocationCode;
@ExcelProperty("从货主代码")
private String fromOwnerCode;
@ExcelProperty("从包装号")
private String fromPackingNumber;
@ExcelProperty("从器具号")
private String fromContainerNumber;
@ExcelProperty("从批次")
private String fromBatch;
@ExcelProperty("从库位代码")
private String fromLocationCode;
@ExcelProperty("从库位组代码")
private String fromLocationGroupCode;
@ExcelProperty("从库区代码")
private String fromAreaCode;
@ExcelProperty(value = "从库存状态", converter = DictConvert.class)
@DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String fromInventoryStatus;
@ExcelProperty("到货主代码")
private String toOwnerCode;
@ExcelProperty("到包装号")
private String toPackingNumber;
@ExcelProperty("到器具号")
private String toContainerNumber;
@ExcelProperty("到批次")
private String toBatch;
@ExcelProperty("到库位代码")
private String toLocationCode;
@ExcelProperty("到库位组代码")
private String toLocationGroupCode;
@ExcelProperty("到库区代码")
private String toAreaCode;
@ExcelProperty(value = "到库存状态", converter = DictConvert.class)
@DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String toInventoryStatus;
@ExcelProperty("物品名称")
private String itemName;
@ExcelProperty("物品描述1")
private String itemDesc1;
@ExcelProperty("物品描述2")
private String itemDesc2;
@ExcelProperty("项目代码")
private String projectCode;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String uom;
@ExcelProperty("代码")
private String codeDetail;
@ExcelProperty(value = "接口类型", converter = DictConvert.class)
@DictFormat("interface_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String interfaceTypeDetail;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("备注")
private String remarkDetail;
@ExcelProperty("创建时间")
@ColumnWidth(value = 22)
private LocalDateTime createTimeDetail;
@ExcelProperty("创建者Id")
private String creatorDetail;
@ExcelProperty("任务明细ID")
private String jobDetailId;
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainExportReqVO.java

@ -90,4 +90,6 @@ public class InventorymoveRecordMainExportReqVO {
@Schema(description = "是否可用") @Schema(description = "是否可用")
private String available; private String available;
@Schema(description = "主表id")
private String masterId;
} }

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainPageReqVO.java

@ -92,4 +92,7 @@ public class InventorymoveRecordMainPageReqVO extends PageParam {
@Schema(description = "是否可用") @Schema(description = "是否可用")
private String available; private String available;
@Schema(description = "主表id")
private String masterId;
} }

133
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/InventorymoveRequestMainController.java

@ -7,12 +7,14 @@ import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ConvertUtil; import com.win.framework.excel.core.util.ConvertUtil;
import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.dept.DeptApi;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.inventorymoveRequest.vo.*; import com.win.module.wms.controller.inventorymoveRequest.vo.*;
import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert; import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.inventorymoveRequest.InventorymoveRequestDetailService;
import com.win.module.wms.service.inventorymoveRequest.InventorymoveRequestMainService; import com.win.module.wms.service.inventorymoveRequest.InventorymoveRequestMainService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
@ -42,9 +44,13 @@ public class InventorymoveRequestMainController {
@Resource @Resource
private InventorymoveRequestMainService inventorymoveRequestMainService; private InventorymoveRequestMainService inventorymoveRequestMainService;
@Resource
private InventorymoveRequestDetailService inventorymoveRequestDetailService;
@Resource @Resource
private AdminUserApi userApi; private AdminUserApi userApi;
@Resource
private DeptApi deptApi;
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建库存转移申请主") @Operation(summary = "创建库存转移申请主")
@ -93,7 +99,14 @@ public class InventorymoveRequestMainController {
@PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:query')") @PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:query')")
public CommonResult<PageResult<InventorymoveRequestMainRespVO>> getInventorymoveRequestMainPage(@Valid InventorymoveRequestMainPageReqVO pageVO) { public CommonResult<PageResult<InventorymoveRequestMainRespVO>> getInventorymoveRequestMainPage(@Valid InventorymoveRequestMainPageReqVO pageVO) {
PageResult<InventorymoveRequestMainDO> pageResult = inventorymoveRequestMainService.getInventorymoveRequestMainPage(pageVO); PageResult<InventorymoveRequestMainDO> pageResult = inventorymoveRequestMainService.getInventorymoveRequestMainPage(pageVO);
return success(InventorymoveRequestMainConvert.INSTANCE.convertPage(pageResult)); PageResult<InventorymoveRequestMainRespVO> result = InventorymoveRequestMainConvert.INSTANCE.convertPage(pageResult);
for(InventorymoveRequestMainRespVO vo : result.getList()) {
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname());
vo.setDepartmentCode(deptApi.getDept(userApi.getUser(Long.valueOf(vo.getCreator())).getDeptId()).getName());
}
return success(result);
} }
@PostMapping("/senior") @PostMapping("/senior")
@ -103,27 +116,64 @@ public class InventorymoveRequestMainController {
PageResult<InventorymoveRequestMainDO> pageResult = inventorymoveRequestMainService.getInventorymoveRequestMainSenior(conditions); PageResult<InventorymoveRequestMainDO> pageResult = inventorymoveRequestMainService.getInventorymoveRequestMainSenior(conditions);
PageResult<InventorymoveRequestMainRespVO> result = InventorymoveRequestMainConvert.INSTANCE.convertPage(pageResult); PageResult<InventorymoveRequestMainRespVO> result = InventorymoveRequestMainConvert.INSTANCE.convertPage(pageResult);
for(InventorymoveRequestMainRespVO vo : result.getList()) { for(InventorymoveRequestMainRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段 //后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname()); vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname());
vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname());
vo.setDepartmentCode(deptApi.getDept(userApi.getUser(Long.valueOf(vo.getCreator())).getDeptId()).getName());
} }
return success(result); return success(result);
} }
@GetMapping("/export-excel") @GetMapping("/export-excel")
@Operation(summary = "导出库存转移申请 Excel") @Operation(summary = "导出库存转移申请 Excel")
@PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:export')") @PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:export')")
@OperateLog(type = EXPORT) @OperateLog(type = EXPORT)
public void exportInventorymoveRequestMainExcel(@Valid InventorymoveRequestMainExportReqVO exportReqVO, public void exportInventorymoveRequestMainExcel(@Valid InventorymoveRequestMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException { HttpServletResponse response) throws IOException {
List<InventorymoveRequestMainDO> list = inventorymoveRequestMainService.getInventorymoveRequestMainList(exportReqVO); List<InventorymoveRequestMainDO> list = inventorymoveRequestMainService.getInventorymoveRequestMainList(exportReqVO);
// 导出 Excel //组装vo
List<InventorymoveRequestMainExcelVO> datas = InventorymoveRequestMainConvert.INSTANCE.convertList02(list); Map<Integer, String[]> mapDropDown = new HashMap<>();
for(InventorymoveRequestMainExcelVO vo : datas) { List<InventorymoveRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); ExcelUtils.write(response, "库存转移申请.xlsx", "库存转移申请数据", InventorymoveRequestMainExcelVO.class, resultList, mapDropDown);
//后端创建个字段作为前端展示的虚拟字段 }
vo.setCreator(user.getNickname());
@GetMapping("/export-excel-senior")
@Operation(summary = "导出库存转移申请 Excel")
@PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:export')")
@OperateLog(type = EXPORT)
public void exportInventorymoveRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<InventorymoveRequestMainDO> list = inventorymoveRequestMainService.getInventorymoveRequestMainList(conditions);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<InventorymoveRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "库存转移申请.xlsx", "库存转移申请数据", InventorymoveRequestMainExcelVO.class, resultList, mapDropDown);
}
private List<InventorymoveRequestMainExcelVO> getExcelVo(List<InventorymoveRequestMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] requestStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.REQUEST_STATUS);
mapDropDown.put(8, requestStatus);
String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE);
mapDropDown.put(12, locationType);
mapDropDown.put(15, locationType);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(27, inventoryStatus);
mapDropDown.put(33, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(42, uom);
List<InventorymoveRequestMainExcelVO> resultList = new ArrayList<>();
// 导出
for(InventorymoveRequestMainDO mainDO : list) {
List<InventorymoveRequestDetailDO> subList = inventorymoveRequestDetailService.selectList(mainDO.getId());
for(InventorymoveRequestDetailDO detailDO : subList) {
InventorymoveRequestMainExcelVO vo = InventorymoveRequestMainConvert.INSTANCE.convert(mainDO, detailDO);
vo.setCreator(userApi.getUser(Long.valueOf(mainDO.getCreator())).getNickname());
vo.setUpdater(userApi.getUser(Long.valueOf(mainDO.getUpdater())).getNickname());
vo.setCreatorDetail(userApi.getUser(Long.valueOf(detailDO.getCreator())).getNickname());
vo.setUpdaterDetail(userApi.getUser(Long.valueOf(detailDO.getUpdater())).getNickname());
vo.setDepartmentCode(deptApi.getDept(userApi.getUser(Long.valueOf(vo.getCreator())).getDeptId()).getName());
resultList.add(vo);
}
} }
ExcelUtils.write(response, "库存转移申请主.xls", "数据", InventorymoveRequestMainExcelVO.class, datas); return resultList;
} }
@GetMapping("/get-import-template") @GetMapping("/get-import-template")
@ -145,15 +195,17 @@ public class InventorymoveRequestMainController {
@Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"), @Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
@Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true") @Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")
}) })
@PreAuthorize("@ss.hasPermission('wms:deliver-plan-main:import')") @PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response, public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file, @RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode, @RequestParam(value = "mode") Integer mode,
@RequestParam(value = "fromInventoryStatus") String fromInventoryStatus,
@RequestParam(value = "toInventoryStatus") String toInventoryStatus ,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<InventorymoveRequestMainImportVO> list = ExcelUtils.read(file, InventorymoveRequestMainImportVO.class); List<InventorymoveRequestMainImportVO> list = ExcelUtils.read(file, InventorymoveRequestMainImportVO.class);
ConvertUtil<InventorymoveRequestMainCreateReqVO> convertUtil = new ConvertUtil<>(InventorymoveRequestMainCreateReqVO.class); ConvertUtil<InventorymoveRequestMainCreateReqVO> convertUtil = new ConvertUtil<>(InventorymoveRequestMainCreateReqVO.class);
List<InventorymoveRequestMainCreateReqVO> createReqVOList = convertUtil.invoke(list).getDataList(); List<InventorymoveRequestMainCreateReqVO> createReqVOList = convertUtil.invoke(list).getDataList();
List<InventorymoveRequestMainImportErrorVO> errorList = inventorymoveRequestMainService.importInventorymoveRequestMainList(createReqVOList, mode, updatePart); List<InventorymoveRequestMainImportErrorVO> errorList = inventorymoveRequestMainService.importInventorymoveRequestMainList(createReqVOList, mode, fromInventoryStatus, toInventoryStatus, updatePart);
Map<String, Object> returnMap = new HashMap<>(); Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size()); returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) { if(!errorList.isEmpty()) {
@ -163,4 +215,57 @@ public class InventorymoveRequestMainController {
return success(returnMap); return success(returnMap);
} }
@PutMapping("/close")
@Operation(summary = "关闭库存修改申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:close')")
public CommonResult<Boolean> closeInventorymoveRequestMain(@RequestParam("id") Long id) {
Integer count = inventorymoveRequestMainService.closeInventorymoveRequestMain(id);
return success(count > 0);
}
@PutMapping("/reAdd")
@Operation(summary = "重新添加库存修改申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:reAdd')")
public CommonResult<Boolean> reAddInventorymoveRequestMain(@RequestParam("id") Long id) {
Integer count = inventorymoveRequestMainService.reAddInventorymoveRequestMain(id);
return success(count > 0);
}
@PutMapping("/submit")
@Operation(summary = "提交库存修改申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:submit')")
public CommonResult<Boolean> submitInventorymoveRequestMain(@RequestParam("id") Long id) {
Integer count = inventorymoveRequestMainService.submitInventorymoveRequestMain(id);
return success(count > 0);
}
@PutMapping("/agree")
@Operation(summary = "审批通过库存修改申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:agree')")
public CommonResult<Boolean> agreeInventorymoveRequestMain(@RequestParam("id") Long id) {
Integer count = inventorymoveRequestMainService.agreeInventorymoveRequestMain(id);
return success(count > 0);
}
@PutMapping("/handle")
@Operation(summary = "处理库存修改申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:handle')")
public CommonResult<Boolean> handleInventorymoveRequestMain(@RequestParam("id") Long id) {
Integer count = inventorymoveRequestMainService.handleInventorymoveRequestMain(id);
return success(count > 0);
}
@PutMapping("/refused")
@Operation(summary = "审批拒绝库存修改申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:refused')")
public CommonResult<Boolean> abortInventorymoveRequestMain(@RequestParam("id") Long id) {
Integer count = inventorymoveRequestMainService.abortInventorymoveRequestMain(id);
return success(count > 0);
}
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestDetailExportReqVO.java

@ -92,4 +92,6 @@ public class InventorymoveRequestDetailExportReqVO {
@Schema(description = "物品代码") @Schema(description = "物品代码")
private String itemCode; private String itemCode;
@Schema(description = "主表id")
private String masterId;
} }

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestDetailPageReqVO.java

@ -94,4 +94,7 @@ public class InventorymoveRequestDetailPageReqVO extends PageParam {
@Schema(description = "物品代码") @Schema(description = "物品代码")
private String itemCode; private String itemCode;
@Schema(description = "主表id")
private String masterId;
} }

84
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainExcelVO.java

@ -1,7 +1,10 @@
package com.win.module.wms.controller.inventorymoveRequest.vo; package com.win.module.wms.controller.inventorymoveRequest.vo;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -31,15 +34,18 @@ public class InventorymoveRequestMainExcelVO {
private String remark; private String remark;
@ExcelProperty("创建时间") @ExcelProperty("创建时间")
@ColumnWidth(value = 22)
private LocalDateTime createTime; private LocalDateTime createTime;
@ExcelProperty("创建者用户名") @ExcelProperty("创建者用户名")
private String creator; private String creator;
@ExcelProperty("申请时间") @ExcelProperty("申请时间")
@ColumnWidth(value = 22)
private LocalDateTime requestTime; private LocalDateTime requestTime;
@ExcelProperty("截止时间") @ExcelProperty("截止时间")
@ColumnWidth(value = 22)
private LocalDateTime dueTime; private LocalDateTime dueTime;
@ExcelProperty("部门") @ExcelProperty("部门")
@ -50,6 +56,7 @@ public class InventorymoveRequestMainExcelVO {
private String status; private String status;
@ExcelProperty("最后更新时间") @ExcelProperty("最后更新时间")
@ColumnWidth(value = 22)
private LocalDateTime updateTime; private LocalDateTime updateTime;
@ExcelProperty("最后更新者用户名") @ExcelProperty("最后更新者用户名")
@ -90,4 +97,81 @@ public class InventorymoveRequestMainExcelVO {
@ExcelProperty("直接生成记录") @ExcelProperty("直接生成记录")
private String directCreateRecord; private String directCreateRecord;
//子表
@ExcelProperty("从货主代码")
private String fromOwnerCode;
@ExcelProperty("从包装号")
private String fromPackingNumber;
@ExcelProperty("从器具号")
private String fromContainerNumber;
@ExcelProperty("从批次")
private String fromBatch;
@ExcelProperty("从库位代码")
private String fromLocationCode;
@ExcelProperty(value = "从库存状态", converter = DictConvert.class)
@DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String fromInventoryStatus;
@ExcelProperty("到货主代码")
private String toOwnerCode;
@ExcelProperty("到包装号")
private String toPackingNumber;
@ExcelProperty("到器具号")
private String toContainerNumber;
@ExcelProperty("到批次")
private String toBatch;
@ExcelProperty("到库位代码")
private String toLocationCode;
@ExcelProperty(value = "到库存状态", converter = DictConvert.class)
@DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String toInventoryStatus;
@ExcelProperty("备注")
private String remarkDetail;
@ExcelProperty("创建时间")
@ColumnWidth(value = 22)
private LocalDateTime createTimeDetail;
@ExcelProperty("创建者用户名")
private String creatorDetail;
@ExcelProperty("物品名称")
private String itemName;
@ExcelProperty("物品描述1")
private String itemDesc1;
@ExcelProperty("物品描述2")
private String itemDesc2;
@ExcelProperty("项目代码")
private String projectCode;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
private String uom;
@ExcelProperty("最后更新时间")
@ColumnWidth(value = 22)
private LocalDateTime updateTimeDetail;
@ExcelProperty("最后更新者用户名")
private String updaterDetail;
@ExcelProperty("物品代码")
private String itemCode;
} }

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainImportVO.java

@ -26,11 +26,9 @@ import java.time.LocalDateTime;
public class InventorymoveRequestMainImportVO { public class InventorymoveRequestMainImportVO {
//主表数据 //主表数据
@ExcelProperty("单据号") @ExcelProperty("单据号")
private String number; private String number;
//子表数据 //子表数据
@ExcelProperty("物品代码") @ExcelProperty("物品代码")
private String itemCode; private String itemCode;
@ -53,4 +51,10 @@ public class InventorymoveRequestMainImportVO {
@ExcelProperty("到库位代码") @ExcelProperty("到库位代码")
private String toLocationCode; private String toLocationCode;
@ExcelProperty("数量")
private BigDecimal qty;
@ExcelProperty("截止时间")
private LocalDateTime dueTime;
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainPageReqVO.java

@ -85,4 +85,9 @@ public class InventorymoveRequestMainPageReqVO extends PageParam {
@Schema(description = "直接生成记录") @Schema(description = "直接生成记录")
private String directCreateRecord; private String directCreateRecord;
@Schema(description = "从库存状态")
private String fromInventoryStatus;
@Schema(description = "到库存状态")
private String toInventoryStatus;
} }

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveJob/InventorymoveJobMainConvert.java

@ -8,8 +8,11 @@ import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainCre
import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainExcelVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainExcelVO;
import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainRespVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainRespVO;
import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainUpdateReqVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO;
@ -36,4 +39,15 @@ public interface InventorymoveJobMainConvert {
List<InventorymoveJobMainExcelVO> convertList02(List<InventorymoveJobMainDO> list); List<InventorymoveJobMainExcelVO> convertList02(List<InventorymoveJobMainDO> list);
InventorymoveJobMainDO convert(InventorymoveRequestMainDO mainDO); InventorymoveJobMainDO convert(InventorymoveRequestMainDO mainDO);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.creatorName", target = "creatorName"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
@Mapping(source = "detailDO.creator", target = "creatorDetail"),
})
InventorymoveJobMainExcelVO convert(InventorymoveJobMainDO mainDO, InventorymoveJobDetailDO detailDO);
} }

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRecord/InventorymoveRecordMainConvert.java

@ -8,7 +8,10 @@ import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordM
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainExcelVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainExcelVO;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainRespVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainRespVO;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainUpdateReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordDetailDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordMainDO; import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordMainDO;
@ -33,5 +36,13 @@ public interface InventorymoveRecordMainConvert {
PageResult<InventorymoveRecordMainRespVO> convertPage(PageResult<InventorymoveRecordMainDO> page); PageResult<InventorymoveRecordMainRespVO> convertPage(PageResult<InventorymoveRecordMainDO> page);
List<InventorymoveRecordMainExcelVO> convertList02(List<InventorymoveRecordMainDO> list); List<InventorymoveRecordMainExcelVO> convertList02(List<InventorymoveRecordMainDO> list);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.interfaceType", target = "interfaceType"),
@Mapping(source = "mainDO.code", target = "code"),
})
InventorymoveRecordMainExcelVO convert(InventorymoveRecordMainDO mainDO, InventorymoveRecordDetailDO detailDO);
} }

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRequest/InventorymoveRequestMainConvert.java

@ -44,5 +44,13 @@ public interface InventorymoveRequestMainConvert {
@Mapping(source = "mainVo.number", target = "number"), @Mapping(source = "mainVo.number", target = "number"),
}) })
InventorymoveRequestMainImportErrorVO convert(InventorymoveRequestMainCreateReqVO mainVo, InventorymoveRequestDetailDO detailDo); InventorymoveRequestMainImportErrorVO convert(InventorymoveRequestMainCreateReqVO mainVo, InventorymoveRequestDetailDO detailDo);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
})
InventorymoveRequestMainExcelVO convert(InventorymoveRequestMainDO mainDO, InventorymoveRequestDetailDO detailDO);
} }

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveJob/InventorymoveJobMainDO.java

@ -1,5 +1,6 @@
package com.win.module.wms.dal.dataobject.inventorymoveJob; package com.win.module.wms.dal.dataobject.inventorymoveJob;
import com.sun.xml.bind.v2.TODO;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -217,5 +218,12 @@ public class InventorymoveJobMainDO extends BaseDO {
* 允许修改箱码 * 允许修改箱码
*/ */
private String allowModifyPackingNumber; private String allowModifyPackingNumber;
/**
* 入库库存状态范围
*/
private String inInventoryStatuses;
/**
* 出库库存状态范围
*/
private String outInventoryStatuses;
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveRecord/InventorymoveRecordMainDO.java

@ -1,5 +1,6 @@
package com.win.module.wms.dal.dataobject.inventorymoveRecord; package com.win.module.wms.dal.dataobject.inventorymoveRecord;
import com.sun.xml.bind.v2.TODO;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -145,5 +146,9 @@ public class InventorymoveRecordMainDO extends BaseDO {
* 是否可用 * 是否可用
*/ */
private String available; private String available;
/**
* 主表id
*/
private String masterId;
} }

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveRequest/InventorymoveRequestMainDO.java

@ -1,5 +1,6 @@
package com.win.module.wms.dal.dataobject.inventorymoveRequest; package com.win.module.wms.dal.dataobject.inventorymoveRequest;
import com.sun.xml.bind.v2.TODO;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -130,5 +131,13 @@ public class InventorymoveRequestMainDO extends BaseDO {
* 直接生成记录 * 直接生成记录
*/ */
private String directCreateRecord; private String directCreateRecord;
/**
* 入库库存状态范围
*/
private String inInventoryStatuses;
/**
* 出库库存状态范围
*/
private String outInventoryStatuses;
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRequest/InventorychangeRequestDetailMapper.java

@ -23,6 +23,7 @@ public interface InventorychangeRequestDetailMapper extends BaseMapperX<Inventor
default PageResult<InventorychangeRequestDetailDO> selectPage(InventorychangeRequestDetailPageReqVO reqVO) { default PageResult<InventorychangeRequestDetailDO> selectPage(InventorychangeRequestDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<InventorychangeRequestDetailDO>() return selectPage(reqVO, new LambdaQueryWrapperX<InventorychangeRequestDetailDO>()
.eqIfPresent(InventorychangeRequestDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(InventorychangeRequestDetailDO::getLocationGroupCode, reqVO.getLocationGroupCode()) .eqIfPresent(InventorychangeRequestDetailDO::getLocationGroupCode, reqVO.getLocationGroupCode())
.eqIfPresent(InventorychangeRequestDetailDO::getLocationCode, reqVO.getLocationCode()) .eqIfPresent(InventorychangeRequestDetailDO::getLocationCode, reqVO.getLocationCode())
.eqIfPresent(InventorychangeRequestDetailDO::getAreaCode, reqVO.getAreaCode()) .eqIfPresent(InventorychangeRequestDetailDO::getAreaCode, reqVO.getAreaCode())
@ -66,6 +67,7 @@ public interface InventorychangeRequestDetailMapper extends BaseMapperX<Inventor
} }
default List<InventorychangeRequestDetailDO> selectList(InventorychangeRequestDetailExportReqVO reqVO) { default List<InventorychangeRequestDetailDO> selectList(InventorychangeRequestDetailExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<InventorychangeRequestDetailDO>() return selectList(new LambdaQueryWrapperX<InventorychangeRequestDetailDO>()
.eqIfPresent(InventorychangeRequestDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(InventorychangeRequestDetailDO::getLocationGroupCode, reqVO.getLocationGroupCode()) .eqIfPresent(InventorychangeRequestDetailDO::getLocationGroupCode, reqVO.getLocationGroupCode())
.eqIfPresent(InventorychangeRequestDetailDO::getLocationCode, reqVO.getLocationCode()) .eqIfPresent(InventorychangeRequestDetailDO::getLocationCode, reqVO.getLocationCode())
.eqIfPresent(InventorychangeRequestDetailDO::getAreaCode, reqVO.getAreaCode()) .eqIfPresent(InventorychangeRequestDetailDO::getAreaCode, reqVO.getAreaCode())

18
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRequest/InventorychangeRequestMainMapper.java

@ -23,8 +23,8 @@ import org.apache.ibatis.annotations.Mapper;
public interface InventorychangeRequestMainMapper extends BaseMapperX<InventorychangeRequestMainDO> { public interface InventorychangeRequestMainMapper extends BaseMapperX<InventorychangeRequestMainDO> {
default PageResult<InventorychangeRequestMainDO> selectPage(InventorychangeRequestMainPageReqVO reqVO) { default PageResult<InventorychangeRequestMainDO> selectPage(InventorychangeRequestMainPageReqVO reqVO) {
LambdaQueryWrapperX<InventorychangeRequestMainDO> lambdaQueryWrapperX = new LambdaQueryWrapperX<>(); return selectPage(reqVO, new LambdaQueryWrapperX<InventorychangeRequestMainDO>()
lambdaQueryWrapperX.eqIfPresent(InventorychangeRequestMainDO::getWarehouseCode, reqVO.getWarehouseCode()) .eqIfPresent(InventorychangeRequestMainDO::getWarehouseCode, reqVO.getWarehouseCode())
.eqIfPresent(InventorychangeRequestMainDO::getNumber, reqVO.getNumber()) .eqIfPresent(InventorychangeRequestMainDO::getNumber, reqVO.getNumber())
.eqIfPresent(InventorychangeRequestMainDO::getBusinessType, reqVO.getBusinessType()) .eqIfPresent(InventorychangeRequestMainDO::getBusinessType, reqVO.getBusinessType())
.eqIfPresent(InventorychangeRequestMainDO::getRemark, reqVO.getRemark()) .eqIfPresent(InventorychangeRequestMainDO::getRemark, reqVO.getRemark())
@ -40,19 +40,7 @@ public interface InventorychangeRequestMainMapper extends BaseMapperX<Inventoryc
.eqIfPresent(InventorychangeRequestMainDO::getAutoAgree, reqVO.getAutoAgree()) .eqIfPresent(InventorychangeRequestMainDO::getAutoAgree, reqVO.getAutoAgree())
.eqIfPresent(InventorychangeRequestMainDO::getAutoExecute, reqVO.getAutoExecute()) .eqIfPresent(InventorychangeRequestMainDO::getAutoExecute, reqVO.getAutoExecute())
.eqIfPresent(InventorychangeRequestMainDO::getDirectCreateRecord, reqVO.getDirectCreateRecord()) .eqIfPresent(InventorychangeRequestMainDO::getDirectCreateRecord, reqVO.getDirectCreateRecord())
.orderByDesc(InventorychangeRequestMainDO::getId); .orderByDesc(InventorychangeRequestMainDO::getId));
if("OK".equals(reqVO.getFromInventoryStatus()) && "HOLD".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorychangeRequestMainDO::getBusinessType,"OkToHoldRequest");
} else if("HOLD".equals(reqVO.getFromInventoryStatus()) && "OK".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorychangeRequestMainDO::getBusinessType,"HoldToOkRequest");
} else if("HOLD".equals(reqVO.getFromInventoryStatus()) && "SCRAP".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorychangeRequestMainDO::getBusinessType,"HoldToScrapRequest");
} else if("OK".equals(reqVO.getFromInventoryStatus()) && "SCRAP".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorychangeRequestMainDO::getBusinessType,"OkToScrapRequest");
} else if("SCRAP".equals(reqVO.getFromInventoryStatus()) && "HOLD".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorychangeRequestMainDO::getBusinessType,"ScrapToHoldRequest");
}
return selectPage(reqVO,lambdaQueryWrapperX);
} }
default PageResult<InventorychangeRequestMainDO> selectSenior(CustomConditions conditions) { default PageResult<InventorychangeRequestMainDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions)); return selectPage(conditions, QueryWrapperUtils.structure(conditions));

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveJob/InventorymoveJobDetailMapper.java

@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobDetailExportReqVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobDetailExportReqVO;
import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobDetailPageReqVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobDetailPageReqVO;
import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -22,6 +23,7 @@ public interface InventorymoveJobDetailMapper extends BaseMapperX<InventorymoveJ
default PageResult<InventorymoveJobDetailDO> selectPage(InventorymoveJobDetailPageReqVO reqVO) { default PageResult<InventorymoveJobDetailDO> selectPage(InventorymoveJobDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<InventorymoveJobDetailDO>() return selectPage(reqVO, new LambdaQueryWrapperX<InventorymoveJobDetailDO>()
.eqIfPresent(InventorymoveJobDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(InventorymoveJobDetailDO::getItemCode, reqVO.getItemCode()) .eqIfPresent(InventorymoveJobDetailDO::getItemCode, reqVO.getItemCode())
.likeIfPresent(InventorymoveJobDetailDO::getItemName, reqVO.getItemName()) .likeIfPresent(InventorymoveJobDetailDO::getItemName, reqVO.getItemName())
.eqIfPresent(InventorymoveJobDetailDO::getItemDesc1, reqVO.getItemDesc1()) .eqIfPresent(InventorymoveJobDetailDO::getItemDesc1, reqVO.getItemDesc1())
@ -75,4 +77,8 @@ public interface InventorymoveJobDetailMapper extends BaseMapperX<InventorymoveJ
.orderByDesc(InventorymoveJobDetailDO::getId)); .orderByDesc(InventorymoveJobDetailDO::getId));
} }
default List<InventorymoveJobDetailDO> selectList(Long masterId){
return selectList(new LambdaQueryWrapperX<InventorymoveJobDetailDO>()
.eq(InventorymoveJobDetailDO::getMasterId,masterId));
}
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveJob/InventorymoveJobMainMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainExportReqVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainExportReqVO;
import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainPageReqVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainPageReqVO;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
import com.win.module.wms.dal.dataobject.productdismantleJob.ProductdismantleJobMainDO; import com.win.module.wms.dal.dataobject.productdismantleJob.ProductdismantleJobMainDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -120,4 +121,7 @@ public interface InventorymoveJobMainMapper extends BaseMapperX<InventorymoveJob
} }
default List<InventorymoveJobMainDO> selectSeniorList(CustomConditions conditions) {
return selectList(QueryWrapperUtils.structure(conditions));
}
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRecord/InventorymoveRecordDetailMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordDetailExportReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordDetailExportReqVO;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordDetailPageReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordDetailPageReqVO;
import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordDetailDO; import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
@ -93,5 +94,7 @@ public interface InventorymoveRecordDetailMapper extends BaseMapperX<Inventorymo
.eqIfPresent(InventorymoveRecordDetailDO::getJobDetailId, reqVO.getJobDetailId()) .eqIfPresent(InventorymoveRecordDetailDO::getJobDetailId, reqVO.getJobDetailId())
.orderByDesc(InventorymoveRecordDetailDO::getId)); .orderByDesc(InventorymoveRecordDetailDO::getId));
} }
default List<InventorymoveRecordDetailDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<InventorymoveRecordDetailDO>().eq(InventorymoveRecordDetailDO::getMasterId, masterId));
}
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRecord/InventorymoveRecordMainMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainExportReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainExportReqVO;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainPageReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainPageReqVO;
import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordMainDO; import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordMainDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
@ -23,6 +24,7 @@ public interface InventorymoveRecordMainMapper extends BaseMapperX<Inventorymove
default PageResult<InventorymoveRecordMainDO> selectPage(InventorymoveRecordMainPageReqVO reqVO) { default PageResult<InventorymoveRecordMainDO> selectPage(InventorymoveRecordMainPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<InventorymoveRecordMainDO>() return selectPage(reqVO, new LambdaQueryWrapperX<InventorymoveRecordMainDO>()
.eqIfPresent(InventorymoveRecordMainDO::getRequestNumber, reqVO.getRequestNumber()) .eqIfPresent(InventorymoveRecordMainDO::getRequestNumber, reqVO.getRequestNumber())
.eqIfPresent(InventorymoveRecordMainDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(InventorymoveRecordMainDO::getJobNumber, reqVO.getJobNumber()) .eqIfPresent(InventorymoveRecordMainDO::getJobNumber, reqVO.getJobNumber())
.eqIfPresent(InventorymoveRecordMainDO::getUseOnTheWayLocation, reqVO.getUseOnTheWayLocation()) .eqIfPresent(InventorymoveRecordMainDO::getUseOnTheWayLocation, reqVO.getUseOnTheWayLocation())
.eqIfPresent(InventorymoveRecordMainDO::getOutTransactionType, reqVO.getOutTransactionType()) .eqIfPresent(InventorymoveRecordMainDO::getOutTransactionType, reqVO.getOutTransactionType())
@ -53,6 +55,7 @@ public interface InventorymoveRecordMainMapper extends BaseMapperX<Inventorymove
} }
default List<InventorymoveRecordMainDO> selectList(InventorymoveRecordMainExportReqVO reqVO) { default List<InventorymoveRecordMainDO> selectList(InventorymoveRecordMainExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<InventorymoveRecordMainDO>() return selectList(new LambdaQueryWrapperX<InventorymoveRecordMainDO>()
.eqIfPresent(InventorymoveRecordMainDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(InventorymoveRecordMainDO::getRequestNumber, reqVO.getRequestNumber()) .eqIfPresent(InventorymoveRecordMainDO::getRequestNumber, reqVO.getRequestNumber())
.eqIfPresent(InventorymoveRecordMainDO::getJobNumber, reqVO.getJobNumber()) .eqIfPresent(InventorymoveRecordMainDO::getJobNumber, reqVO.getJobNumber())
.eqIfPresent(InventorymoveRecordMainDO::getUseOnTheWayLocation, reqVO.getUseOnTheWayLocation()) .eqIfPresent(InventorymoveRecordMainDO::getUseOnTheWayLocation, reqVO.getUseOnTheWayLocation())
@ -80,4 +83,7 @@ public interface InventorymoveRecordMainMapper extends BaseMapperX<Inventorymove
.orderByDesc(InventorymoveRecordMainDO::getId)); .orderByDesc(InventorymoveRecordMainDO::getId));
} }
default List<InventorymoveRecordMainDO> selectSeniorList(CustomConditions conditions) {
return selectList(QueryWrapperUtils.structure(conditions));
}
} }

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRequest/InventorymoveRequestDetailMapper.java

@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestDetailExportReqVO; import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestDetailExportReqVO;
import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestDetailPageReqVO; import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestDetailPageReqVO;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO; import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -22,6 +23,7 @@ public interface InventorymoveRequestDetailMapper extends BaseMapperX<Inventorym
default PageResult<InventorymoveRequestDetailDO> selectPage(InventorymoveRequestDetailPageReqVO reqVO) { default PageResult<InventorymoveRequestDetailDO> selectPage(InventorymoveRequestDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<InventorymoveRequestDetailDO>() return selectPage(reqVO, new LambdaQueryWrapperX<InventorymoveRequestDetailDO>()
.eqIfPresent(InventorymoveRequestDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(InventorymoveRequestDetailDO::getFromOwnerCode, reqVO.getFromOwnerCode()) .eqIfPresent(InventorymoveRequestDetailDO::getFromOwnerCode, reqVO.getFromOwnerCode())
.eqIfPresent(InventorymoveRequestDetailDO::getFromPackingNumber, reqVO.getFromPackingNumber()) .eqIfPresent(InventorymoveRequestDetailDO::getFromPackingNumber, reqVO.getFromPackingNumber())
.eqIfPresent(InventorymoveRequestDetailDO::getFromContainerNumber, reqVO.getFromContainerNumber()) .eqIfPresent(InventorymoveRequestDetailDO::getFromContainerNumber, reqVO.getFromContainerNumber())
@ -54,6 +56,7 @@ public interface InventorymoveRequestDetailMapper extends BaseMapperX<Inventorym
} }
default List<InventorymoveRequestDetailDO> selectList(InventorymoveRequestDetailExportReqVO reqVO) { default List<InventorymoveRequestDetailDO> selectList(InventorymoveRequestDetailExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<InventorymoveRequestDetailDO>() return selectList(new LambdaQueryWrapperX<InventorymoveRequestDetailDO>()
.eqIfPresent(InventorymoveRequestDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(InventorymoveRequestDetailDO::getFromOwnerCode, reqVO.getFromOwnerCode()) .eqIfPresent(InventorymoveRequestDetailDO::getFromOwnerCode, reqVO.getFromOwnerCode())
.eqIfPresent(InventorymoveRequestDetailDO::getFromPackingNumber, reqVO.getFromPackingNumber()) .eqIfPresent(InventorymoveRequestDetailDO::getFromPackingNumber, reqVO.getFromPackingNumber())
.eqIfPresent(InventorymoveRequestDetailDO::getFromContainerNumber, reqVO.getFromContainerNumber()) .eqIfPresent(InventorymoveRequestDetailDO::getFromContainerNumber, reqVO.getFromContainerNumber())
@ -82,7 +85,7 @@ public interface InventorymoveRequestDetailMapper extends BaseMapperX<Inventorym
.orderByDesc(InventorymoveRequestDetailDO::getId)); .orderByDesc(InventorymoveRequestDetailDO::getId));
} }
default List<InventorymoveRequestDetailDO> selectList(Long masterId){ default List<InventorymoveRequestDetailDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<InventorymoveRequestDetailDO>().eq(InventorymoveRequestDetailDO::getMasterId,masterId)); return selectList(new LambdaQueryWrapperX<InventorymoveRequestDetailDO>().eq(InventorymoveRequestDetailDO::getMasterId, masterId));
} }
} }

23
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRequest/InventorymoveRequestMainMapper.java

@ -9,7 +9,9 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainExportReqVO; import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainExportReqVO;
import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainPageReqVO; import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestMainDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
@ -21,8 +23,8 @@ import org.apache.ibatis.annotations.Mapper;
public interface InventorymoveRequestMainMapper extends BaseMapperX<InventorymoveRequestMainDO> { public interface InventorymoveRequestMainMapper extends BaseMapperX<InventorymoveRequestMainDO> {
default PageResult<InventorymoveRequestMainDO> selectPage(InventorymoveRequestMainPageReqVO reqVO) { default PageResult<InventorymoveRequestMainDO> selectPage(InventorymoveRequestMainPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<InventorymoveRequestMainDO>() LambdaQueryWrapperX<InventorymoveRequestMainDO> lambdaQueryWrapperX = new LambdaQueryWrapperX<>();
.eqIfPresent(InventorymoveRequestMainDO::getNumber, reqVO.getNumber()) lambdaQueryWrapperX.eqIfPresent(InventorymoveRequestMainDO::getNumber, reqVO.getNumber())
.eqIfPresent(InventorymoveRequestMainDO::getBusinessType, reqVO.getBusinessType()) .eqIfPresent(InventorymoveRequestMainDO::getBusinessType, reqVO.getBusinessType())
.eqIfPresent(InventorymoveRequestMainDO::getRemark, reqVO.getRemark()) .eqIfPresent(InventorymoveRequestMainDO::getRemark, reqVO.getRemark())
.betweenIfPresent(InventorymoveRequestMainDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(InventorymoveRequestMainDO::getCreateTime, reqVO.getCreateTime())
@ -44,7 +46,19 @@ public interface InventorymoveRequestMainMapper extends BaseMapperX<Inventorymov
.eqIfPresent(InventorymoveRequestMainDO::getAutoAgree, reqVO.getAutoAgree()) .eqIfPresent(InventorymoveRequestMainDO::getAutoAgree, reqVO.getAutoAgree())
.eqIfPresent(InventorymoveRequestMainDO::getAutoExecute, reqVO.getAutoExecute()) .eqIfPresent(InventorymoveRequestMainDO::getAutoExecute, reqVO.getAutoExecute())
.eqIfPresent(InventorymoveRequestMainDO::getDirectCreateRecord, reqVO.getDirectCreateRecord()) .eqIfPresent(InventorymoveRequestMainDO::getDirectCreateRecord, reqVO.getDirectCreateRecord())
.orderByDesc(InventorymoveRequestMainDO::getId)); .orderByDesc(InventorymoveRequestMainDO::getId);
if("OK".equals(reqVO.getFromInventoryStatus()) && "HOLD".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorymoveRequestMainDO::getBusinessType,"OkToHoldRequest");
} else if("HOLD".equals(reqVO.getFromInventoryStatus()) && "OK".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorymoveRequestMainDO::getBusinessType,"HoldToOkRequest");
} else if("HOLD".equals(reqVO.getFromInventoryStatus()) && "SCRAP".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorymoveRequestMainDO::getBusinessType,"HoldToScrapRequest");
} else if("OK".equals(reqVO.getFromInventoryStatus()) && "SCRAP".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorymoveRequestMainDO::getBusinessType,"OkToScrapRequest");
} else if("SCRAP".equals(reqVO.getFromInventoryStatus()) && "HOLD".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorymoveRequestMainDO::getBusinessType,"ScrapToHoldRequest");
}
return selectPage(reqVO,lambdaQueryWrapperX);
} }
default PageResult<InventorymoveRequestMainDO> selectSenior(CustomConditions conditions) { default PageResult<InventorymoveRequestMainDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions)); return selectPage(conditions, QueryWrapperUtils.structure(conditions));
@ -76,4 +90,7 @@ public interface InventorymoveRequestMainMapper extends BaseMapperX<Inventorymov
.orderByDesc(InventorymoveRequestMainDO::getId)); .orderByDesc(InventorymoveRequestMainDO::getId));
} }
default List<InventorymoveRequestMainDO> selectSeniorList(CustomConditions conditions) {
return selectList(QueryWrapperUtils.structure(conditions));
}
} }

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreceiptRequest/CustomerreceiptRequestMainServiceImpl.java

@ -13,6 +13,9 @@ import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRe
import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRequestMainExportReqVO; import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRequestMainExportReqVO;
import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRequestMainPageReqVO; import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRequestMainPageReqVO;
import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRequestMainUpdateReqVO; import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRequestMainUpdateReqVO;
import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO;
import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.customerreceiptRecord.CustomerreceiptRecordDetailConvert; import com.win.module.wms.convert.customerreceiptRecord.CustomerreceiptRecordDetailConvert;
import com.win.module.wms.convert.customerreceiptRecord.CustomerreceiptRecordMainConvert; import com.win.module.wms.convert.customerreceiptRecord.CustomerreceiptRecordMainConvert;
import com.win.module.wms.convert.customerreceiptRequest.CustomerreceiptRequestDetailConvert; import com.win.module.wms.convert.customerreceiptRequest.CustomerreceiptRequestDetailConvert;
@ -36,6 +39,7 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@ -312,13 +316,16 @@ public class CustomerreceiptRequestMainServiceImpl implements CustomerreceiptReq
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerreceiptRecord"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerreceiptRecord");
customerreceiptRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); customerreceiptRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode());
customerreceiptRecordMainMapper.insert(CustomerreceiptRecordMainConvert.INSTANCE.convert(customerreceiptRecordMainCreateReqVO)); customerreceiptRecordMainMapper.insert(CustomerreceiptRecordMainConvert.INSTANCE.convert(customerreceiptRecordMainCreateReqVO));
List<ExpectinCreateReqVO> expectinCreateReqVOList = new ArrayList<>();
List<ExpectoutCreateReqVO> expectoutCreateReqVOList = new ArrayList<>();
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for (CustomerreceiptRequestDetailDO customerreceiptRequestDetailDO : detailDOList) { for (CustomerreceiptRequestDetailDO customerreceiptRequestDetailDO : detailDOList) {
CustomerreceiptRecordDetailCreateReqVO customerreceiptRecordDetailCreateReqVO = new CustomerreceiptRecordDetailCreateReqVO(); CustomerreceiptRecordDetailCreateReqVO customerreceiptRecordDetailCreateReqVO = new CustomerreceiptRecordDetailCreateReqVO();
BeanUtils.copyProperties(customerreceiptRequestDetailDO, customerreceiptRecordDetailCreateReqVO); BeanUtils.copyProperties(customerreceiptRequestDetailDO, customerreceiptRecordDetailCreateReqVO);
customerreceiptRecordDetailCreateReqVO.setNumber(number); customerreceiptRecordDetailCreateReqVO.setNumber(number);
customerreceiptRecordDetailMapper.insert(CustomerreceiptRecordDetailConvert.INSTANCE.convert(customerreceiptRecordDetailCreateReqVO)); customerreceiptRecordDetailMapper.insert(CustomerreceiptRecordDetailConvert.INSTANCE.convert(customerreceiptRecordDetailCreateReqVO));
trendsApi.createTrends(mainDO.getId(), "CustomerreceiptRecord", "客户收货申请生成客户收货记录", TrendsTypeEnum.CREATE);
} }
trendsApi.createTrends(mainDO.getId(), "CustomerreceiptRecord", "客户收货申请生成客户收货记录", TrendsTypeEnum.CREATE);
} }
} }
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainService.java

@ -84,7 +84,7 @@ public interface InventorychangeRequestMainService {
* @param updatePart 是否支持更新 * @param updatePart 是否支持更新
* @return 导入结果 * @return 导入结果
*/ */
public List<InventorychangeRequestMainImportErrorVO> importInventorychangeRequestMainList(List<InventorychangeRequestMainCreateReqVO> datas, Integer mode,String fromInventoryStatus , String toInventoryStatus , boolean updatePart); public List<InventorychangeRequestMainImportErrorVO> importInventorychangeRequestMainList(List<InventorychangeRequestMainCreateReqVO> datas, Integer mode,boolean updatePart);
/** /**
* 关闭 * 关闭

402
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java

@ -1,15 +1,18 @@
package com.win.module.wms.service.inventorychangeRequest; package com.win.module.wms.service.inventorychangeRequest;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.exception.ServiceException; import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.framework.common.util.validation.ValidationUtils;
import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.dept.DeptApi;
import com.win.module.system.api.serialnumber.SerialNumberApi; 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.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO;
import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO;
import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordDetailCreateReqVO; import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordDetailCreateReqVO;
import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordMainCreateReqVO; import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordMainCreateReqVO;
import com.win.module.wms.controller.inventorychangeRequest.vo.*; import com.win.module.wms.controller.inventorychangeRequest.vo.*;
@ -19,7 +22,7 @@ import com.win.module.wms.convert.inventorychangeRequest.InventorychangeRequestD
import com.win.module.wms.convert.inventorychangeRequest.InventorychangeRequestMainConvert; import com.win.module.wms.convert.inventorychangeRequest.InventorychangeRequestMainConvert;
import com.win.module.wms.dal.dataobject.balance.BalanceDO; 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.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO; import com.win.module.wms.dal.dataobject.inventorychangeRecord.InventorychangeRecordDetailDO;
import com.win.module.wms.dal.dataobject.inventorychangeRecord.InventorychangeRecordMainDO; import com.win.module.wms.dal.dataobject.inventorychangeRecord.InventorychangeRecordMainDO;
import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestDetailDO; import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestDetailDO;
import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestMainDO; import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestMainDO;
@ -32,15 +35,17 @@ import com.win.module.wms.dal.mysql.inventorychangeRecord.InventorychangeRecordD
import com.win.module.wms.dal.mysql.inventorychangeRecord.InventorychangeRecordMainMapper; import com.win.module.wms.dal.mysql.inventorychangeRecord.InventorychangeRecordMainMapper;
import com.win.module.wms.dal.mysql.inventorychangeRequest.InventorychangeRequestDetailMapper; import com.win.module.wms.dal.mysql.inventorychangeRequest.InventorychangeRequestDetailMapper;
import com.win.module.wms.dal.mysql.inventorychangeRequest.InventorychangeRequestMainMapper; import com.win.module.wms.dal.mysql.inventorychangeRequest.InventorychangeRequestMainMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.enums.request.RequestStatusState; import com.win.module.wms.enums.request.RequestStatusState;
import com.win.module.wms.service.expectin.ExpectinService;
import com.win.module.wms.service.expectout.ExpectoutService;
import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.itempackaging.ItempackagingService; import com.win.module.wms.service.itempackaging.ItempackagingService;
import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.recordsetting.RecordsettingService; import com.win.module.wms.service.recordsetting.RecordsettingService;
import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.service.shift.ShiftService; import com.win.module.wms.service.shift.ShiftService;
import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.util.JobUtils; import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -48,6 +53,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Validator;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
@ -74,6 +80,12 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
@Resource @Resource
private InventorychangeRecordDetailMapper inventorychangeRecordDetailMapper; private InventorychangeRecordDetailMapper inventorychangeRecordDetailMapper;
@Resource @Resource
private TransactionService transactionService;
@Resource
private ExpectoutService expectoutService;
@Resource
private ExpectinService expectinService;
@Resource
private ItembasicService itembasicService; private ItembasicService itembasicService;
@Resource @Resource
private ItempackagingService itempackagingService; private ItempackagingService itempackagingService;
@ -93,14 +105,18 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
private BalanceMapper balanceMapper; private BalanceMapper balanceMapper;
@Resource @Resource
private RecordsettingService recordsettingService; private RecordsettingService recordsettingService;
@Resource
private Validator validator;
@Resource
private AdminUserApi userApi;
@Override @Override
public Long createInventorychangeRequestMain(InventorychangeRequestMainCreateReqVO createReqVO) { public Long createInventorychangeRequestMain(InventorychangeRequestMainCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InventorychangeRequest"); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InventorychangeRequest");
InventorychangeRequestMainDO inventorychangeRequestMainDO = validatorToCreate(createReqVO); InventorychangeRequestMainDO inventorychangeRequestMainDO = validatorToCreate(createReqVO);
//调用自动执行方法 //调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(inventorychangeRequestMainDO.getStatus())) { if (RequestStatusEnum.HANDLING.getCode().equals(inventorychangeRequestMainDO.getStatus())) {
generateRecord(inventorychangeRequestMainDO,inventorychangeRequestDetailMapper.selectList(inventorychangeRequestMainDO.getId())); generateRecord(inventorychangeRequestMainDO, inventorychangeRequestDetailMapper.selectList(inventorychangeRequestMainDO.getId()));
} }
trendsApi.createTrends(requestsettingDO.getId(), "InventorychangeRequest", "增加了库存修改申请", TrendsTypeEnum.CREATE); trendsApi.createTrends(requestsettingDO.getId(), "InventorychangeRequest", "增加了库存修改申请", TrendsTypeEnum.CREATE);
return inventorychangeRequestMainDO.getId(); return inventorychangeRequestMainDO.getId();
@ -112,7 +128,7 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
// 校验存在 // 校验存在
validateInventorychangeRequestMainExists(updateReqVO.getId()); validateInventorychangeRequestMainExists(updateReqVO.getId());
InventorychangeRequestMainDO inventorychangeRequestMainDO = validatorToUpdate(updateReqVO); InventorychangeRequestMainDO inventorychangeRequestMainDO = validatorToUpdate(updateReqVO);
if(RequestStatusEnum.HANDLING.getCode().equals(inventorychangeRequestMainDO.getStatus())) { if (RequestStatusEnum.HANDLING.getCode().equals(inventorychangeRequestMainDO.getStatus())) {
} }
trendsApi.createTrends(requestsettingDO.getId(), "InventorychangeRequest", "修改了库存修改申请", TrendsTypeEnum.UPDATE); trendsApi.createTrends(requestsettingDO.getId(), "InventorychangeRequest", "修改了库存修改申请", TrendsTypeEnum.UPDATE);
@ -166,8 +182,8 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
InventorychangeRequestMainDO mainDO = validateInventorychangeRequestMainExists(id); InventorychangeRequestMainDO mainDO = validateInventorychangeRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.close(); boolean flag = requestStatusState.close();
if(!flag) { if (!flag) {
throw new ServiceException(DELIVER_REQUEST_CANNOT_CLOSE); throw new ServiceException(INVENTORYCHANGE_REQUEST_CANNOT_CLOSE);
} }
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "inventorychangeRequest", "关闭了库存修改申请", TrendsTypeEnum.UPDATE); trendsApi.createTrends(id, "inventorychangeRequest", "关闭了库存修改申请", TrendsTypeEnum.UPDATE);
@ -182,8 +198,8 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
InventorychangeRequestMainDO mainDO = validateInventorychangeRequestMainExists(id); InventorychangeRequestMainDO mainDO = validateInventorychangeRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.reAdd(); boolean flag = requestStatusState.reAdd();
if(!flag) { if (!flag) {
throw new ServiceException(DELIVER_REQUEST_CANNOT_RE_ADD); throw new ServiceException(INVENTORYCHANGE_REQUEST_CANNOT_RE_ADD);
} }
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "inventorychangeRequest", "打开了库存修改申请", TrendsTypeEnum.UPDATE); trendsApi.createTrends(id, "inventorychangeRequest", "打开了库存修改申请", TrendsTypeEnum.UPDATE);
@ -197,12 +213,12 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
InventorychangeRequestMainDO mainDO = validateInventorychangeRequestMainExists(id); InventorychangeRequestMainDO mainDO = validateInventorychangeRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute());
if(!flag) { if (!flag) {
throw new ServiceException(DELIVER_REQUEST_CANNOT_SUBMIT); throw new ServiceException(INVENTORYCHANGE_REQUEST_CANNOT_SUBMIT);
} }
mainDO.setStatus(requestStatusState.getState().getCode()); mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法 //调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateRecord(mainDO, inventorychangeRequestDetailMapper.selectList(mainDO.getId())); this.generateRecord(mainDO, inventorychangeRequestDetailMapper.selectList(mainDO.getId()));
} }
trendsApi.createTrends(id, "inventorychangeRequest", "提交了库存修改申请", TrendsTypeEnum.UPDATE); trendsApi.createTrends(id, "inventorychangeRequest", "提交了库存修改申请", TrendsTypeEnum.UPDATE);
@ -224,16 +240,16 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
inventorychangeRecordMainCreateReqVO.setExecuteTime(LocalDateTime.now()); inventorychangeRecordMainCreateReqVO.setExecuteTime(LocalDateTime.now());
inventorychangeRecordMainCreateReqVO.setActiveDate(mainDO.getCreateTime()); inventorychangeRecordMainCreateReqVO.setActiveDate(mainDO.getCreateTime());
inventorychangeRecordMainCreateReqVO.setAvailable("TRUE"); inventorychangeRecordMainCreateReqVO.setAvailable("TRUE");
String replace = inventorychangeRecordMainCreateReqVO.getBusinessType().replace("Request", "Record");
//增加业务类型 //增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType(replace); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("inventorychangeRecord");
RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist(replace); RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("inventorychangeRecord");
inventorychangeRecordMainCreateReqVO.setInTransactionType(businesstypeDO.getInTransactionType()); inventorychangeRecordMainCreateReqVO.setInTransactionType(businesstypeDO.getInTransactionType());
inventorychangeRecordMainCreateReqVO.setOutTransactionType(businesstypeDO.getOutTransactionType()); inventorychangeRecordMainCreateReqVO.setOutTransactionType(businesstypeDO.getOutTransactionType());
inventorychangeRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); inventorychangeRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode());
inventorychangeRecordMainCreateReqVO.setInterfaceType(recordsettingDO.getInterfaceType()); inventorychangeRecordMainCreateReqVO.setInterfaceType(recordsettingDO.getInterfaceType());
InventorychangeRecordMainDO convert = InventorychangeRecordMainConvert.INSTANCE.convert(inventorychangeRecordMainCreateReqVO); InventorychangeRecordMainDO convert = InventorychangeRecordMainConvert.INSTANCE.convert(inventorychangeRecordMainCreateReqVO);
inventorychangeRecordMainMapper.insert(convert); inventorychangeRecordMainMapper.insert(convert);
List<InventorychangeRecordDetailDO> iinventorychangeRecordDetailCreateReqVOlDOList = new ArrayList<>();
for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : detailDOList) { for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : detailDOList) {
InventorychangeRecordDetailCreateReqVO inventorychangeRecordDetailCreateReqVO = new InventorychangeRecordDetailCreateReqVO(); InventorychangeRecordDetailCreateReqVO inventorychangeRecordDetailCreateReqVO = new InventorychangeRecordDetailCreateReqVO();
BeanUtils.copyProperties(inventorychangeRequestDetailDO, inventorychangeRecordDetailCreateReqVO); BeanUtils.copyProperties(inventorychangeRequestDetailDO, inventorychangeRecordDetailCreateReqVO);
@ -242,10 +258,12 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
inventorychangeRecordDetailCreateReqVO.setMasterId(convert.getId().toString()); inventorychangeRecordDetailCreateReqVO.setMasterId(convert.getId().toString());
ArrayList<String> inventoryStatus = new ArrayList<>(); ArrayList<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add(inventorychangeRequestDetailDO.getFromInventoryStatus()); inventoryStatus.add(inventorychangeRequestDetailDO.getFromInventoryStatus());
validatorLocationReturnManagementAccuracy(mainDO,inventorychangeRequestDetailDO,inventoryStatus,true); validatorLocationReturnManagementAccuracy(mainDO, inventorychangeRequestDetailDO, inventoryStatus);
inventorychangeRecordDetailMapper.insert(InventorychangeRecordDetailConvert.INSTANCE.convert(inventorychangeRecordDetailCreateReqVO)); iinventorychangeRecordDetailCreateReqVOlDOList.add(InventorychangeRecordDetailConvert.INSTANCE.convert(inventorychangeRecordDetailCreateReqVO));
trendsApi.createTrends(mainDO.getId(), "InventorychangeRecord", "库存修改申请生成库存修改记录", TrendsTypeEnum.CREATE);
} }
inventorychangeRecordDetailMapper.insertBatch(iinventorychangeRecordDetailCreateReqVOlDOList);
//增加库存事务
trendsApi.createTrends(mainDO.getId(), "InventorychangeRecord", "库存修改申请生成库存修改记录", TrendsTypeEnum.CREATE);
} }
//审批同意 //审批同意
@ -256,12 +274,12 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
InventorychangeRequestMainDO mainDO = validateInventorychangeRequestMainExists(id); InventorychangeRequestMainDO mainDO = validateInventorychangeRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.agree(mainDO.getAutoAgree()); boolean flag = requestStatusState.agree(mainDO.getAutoAgree());
if(!flag) { if (!flag) {
throw new ServiceException(DELIVER_REQUEST_CANNOT_AGREE); throw new ServiceException(INVENTORYCHANGE_REQUEST_CANNOT_AGREE);
} }
mainDO.setStatus(requestStatusState.getState().getCode()); mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法 //调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateRecord(mainDO, inventorychangeRequestDetailMapper.selectList(mainDO.getId())); this.generateRecord(mainDO, inventorychangeRequestDetailMapper.selectList(mainDO.getId()));
} }
trendsApi.createTrends(id, "inventorychangeRequest", "审批同意了库存修改申请", TrendsTypeEnum.UPDATE); trendsApi.createTrends(id, "inventorychangeRequest", "审批同意了库存修改申请", TrendsTypeEnum.UPDATE);
@ -276,8 +294,8 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
InventorychangeRequestMainDO mainDO = validateInventorychangeRequestMainExists(id); InventorychangeRequestMainDO mainDO = validateInventorychangeRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.handle(); boolean flag = requestStatusState.handle();
if(!flag) { if (!flag) {
throw new ServiceException(DELIVER_REQUEST_CANNOT_HANDLE); throw new ServiceException(INVENTORYCHANGE_REQUEST_CANNOT_HANDLE);
} }
mainDO.setStatus(requestStatusState.getState().getCode()); mainDO.setStatus(requestStatusState.getState().getCode());
//调用执行方法 //调用执行方法
@ -294,8 +312,8 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
InventorychangeRequestMainDO mainDO = validateInventorychangeRequestMainExists(id); InventorychangeRequestMainDO mainDO = validateInventorychangeRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.refused(); boolean flag = requestStatusState.refused();
if(!flag) { if (!flag) {
throw new ServiceException(DELIVER_REQUEST_CANNOT_ABORT); throw new ServiceException(INVENTORYCHANGE_REQUEST_CANNOT_ABORT);
} }
mainDO.setStatus(requestStatusState.getState().getCode()); mainDO.setStatus(requestStatusState.getState().getCode());
trendsApi.createTrends(id, "inventorychangeRequest", "审批拒绝了库存修改申请", TrendsTypeEnum.UPDATE); trendsApi.createTrends(id, "inventorychangeRequest", "审批拒绝了库存修改申请", TrendsTypeEnum.UPDATE);
@ -308,7 +326,7 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
} }
@Override @Override
public List<InventorychangeRequestMainImportErrorVO> importInventorychangeRequestMainList(List<InventorychangeRequestMainCreateReqVO> datas, Integer mode, String fromInventoryStatus , String toInventoryStatus ,boolean updatePart) { public List<InventorychangeRequestMainImportErrorVO> importInventorychangeRequestMainList(List<InventorychangeRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) { if (CollUtil.isEmpty(datas)) {
throw exception(INVENTORYCHANGE_REQUEST_IMPORT_LIST_IS_EMPTY); throw exception(INVENTORYCHANGE_REQUEST_IMPORT_LIST_IS_EMPTY);
} }
@ -321,8 +339,6 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
// 是否有错误数据 // 是否有错误数据
boolean flag = true; boolean flag = true;
for (InventorychangeRequestDetailDO detailDO : subDOList) { for (InventorychangeRequestDetailDO detailDO : subDOList) {
detailDO.setFromInventoryStatus(fromInventoryStatus);
detailDO.setToInventoryStatus(toInventoryStatus);
String messageDetail = validateInventorychangeRequestDetailImport(detailDO, mainDo); String messageDetail = validateInventorychangeRequestDetailImport(detailDO, mainDo);
if (!messageMain.isEmpty() || !messageDetail.isEmpty()) { if (!messageMain.isEmpty() || !messageDetail.isEmpty()) {
InventorychangeRequestMainImportErrorVO importErrorVO = InventorychangeRequestMainConvert.INSTANCE.convert(createReqVO, detailDO); InventorychangeRequestMainImportErrorVO importErrorVO = InventorychangeRequestMainConvert.INSTANCE.convert(createReqVO, detailDO);
@ -335,14 +351,23 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
} }
//写入数据 //写入数据
if (flag) { if (flag) {
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InventoryChangeRequest");
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute());
mainDo.setStatus(requestStatusState.getState().getCode());
String number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_CHANGE_REQUEST.getCode());
mainDo.setNumber(number);
mainDo.setDepartmentCode(userApi.getUser(Long.valueOf(mainDo.getCreator())).getDeptId().toString());
inventorychangeRequestMainMapper.insert(mainDo); inventorychangeRequestMainMapper.insert(mainDo);
for (InventorychangeRequestDetailDO detailDO : subDOList) { for (InventorychangeRequestDetailDO detailDO : subDOList) {
detailDO.setNumber(mainDo.getNumber()); detailDO.setNumber(mainDo.getNumber());
detailDO.setMasterId(mainDo.getId()); detailDO.setMasterId(mainDo.getId());
detailDO.setToBatch(detailDO.getFromBatch());
detailDO.setToPackingNumber(detailDO.getFromPackingNumber());
detailDO.setToContainerNumber(detailDO.getFromContainerNumber());
} }
//调用自动执行方法 //调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDo.getStatus())) { if (RequestStatusEnum.HANDLING.getCode().equals(mainDo.getStatus())) {
this.generateRecord(mainDo, subDOList); this.generateRecord(mainDo, subDOList);
} }
inventorychangeRequestDetailMapper.insertBatch(subDOList); inventorychangeRequestDetailMapper.insertBatch(subDOList);
@ -360,6 +385,11 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
private String validateInventorychangeRequestMainImport(InventorychangeRequestMainDO mainDo) { private String validateInventorychangeRequestMainImport(InventorychangeRequestMainDO mainDo) {
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
String messageMain = ""; String messageMain = "";
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
messageMain += ex.getMessage() + ",";
}
//主表的验证 //主表的验证
return messageMain; return messageMain;
} }
@ -373,7 +403,7 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
private String validateInventorychangeRequestDetailImport(InventorychangeRequestDetailDO detailDo, InventorychangeRequestMainDO mainDo) { private String validateInventorychangeRequestDetailImport(InventorychangeRequestDetailDO detailDo, InventorychangeRequestMainDO mainDo) {
String messageDetail = ""; String messageDetail = "";
ItembasicDO itembasicDO = null; ItembasicDO itembasicDO = null;
BusinesstypeDO businesstypeDO; BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryChangeRequest");
// 校验物品基础信息 // 校验物品基础信息
try { try {
itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
@ -396,218 +426,49 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
} catch (ServiceException ex) { } catch (ServiceException ex) {
messageDetail += ex.getMessage() + ","; messageDetail += ex.getMessage() + ",";
} }
try {
//隔离转合格申请 if (itembasicDO != null) {
if ("HOLD".equals(detailDo.getFromInventoryStatus())) { jobUtils.ifInType(itembasicDO.getType(), businesstypeDO);
// 校验库存余额是否存在 } else {
try { messageDetail += "物品基本信息不存在,不能校验物品类型" + ",";
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add("HOLD");
validatorLocationReturnManagementAccuracy(mainDo,detailDo,inventoryStatus,false);
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_REQUEST.getCode());
detailDo.setNumber(number);
// 校验业务类型
try {
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkRequest");
mainDo.setBusinessType(businesstypeDO.getCode());
try {
if (itembasicDO != null){
jobUtils.ifInType(itembasicDO.getType(), businesstypeDO);
}else {
messageDetail += "物品基本信息不存在,不能校验物品类型" + ",";
}
}catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
jobUtils.ifOutInventoryStatuses(detailDo.getFromInventoryStatus(), businesstypeDO);
jobUtils.ifInFromLocationType(detailDo.getLocationCode(), businesstypeDO);
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("HoldToOkRequest");
if (requestsettingDO != null) {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
mainDo.setRequestTime(LocalDateTime.now());
} }
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
} }
try {
//合格转隔离申请 jobUtils.ifInInventoryStatuses(detailDo.getFromInventoryStatus(), businesstypeDO);
if ("OK".equals(detailDo.getFromInventoryStatus())) { } catch (ServiceException ex) {
// 校验库存余额是否存在 messageDetail += ex.getMessage() + ",";
try {
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add("OK");
validatorLocationReturnManagementAccuracy(mainDo,detailDo,inventoryStatus,false);
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_REQUEST.getCode());
mainDo.setNumber(number);
// 校验业务类型
try {
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRequest");
mainDo.setBusinessType(businesstypeDO.getCode());
try {
if (itembasicDO != null){
jobUtils.ifInType(itembasicDO.getType(), businesstypeDO);
}else {
messageDetail += "物品基本信息不存在,不能校验物品类型" + ",";
}
}catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
jobUtils.ifOutInventoryStatuses(detailDo.getFromInventoryStatus(), businesstypeDO);
jobUtils.ifInFromLocationType(detailDo.getLocationCode(), businesstypeDO);
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("OkToHoldRequest");
if (requestsettingDO != null) {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
detailDo.setToPackingNumber(null);
detailDo.setToBatch(null);
detailDo.setToContainerNumber(null);
} }
try {
//隔离转报废申请 jobUtils.ifInFromLocationType(detailDo.getLocationCode(), businesstypeDO);
if ("HOLD".equals(detailDo.getFromInventoryStatus())) { } catch (ServiceException ex) {
// 校验库存余额是否存在 messageDetail += ex.getMessage() + ",";
try {
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add("HOLD");
validatorLocationReturnManagementAccuracy(mainDo,detailDo,inventoryStatus,false);
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_REQUEST.getCode());
mainDo.setNumber(number);
// 校验业务类型
try {
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRequest");
mainDo.setBusinessType(businesstypeDO.getCode());
try {
if (itembasicDO != null){
jobUtils.ifInType(itembasicDO.getType(), businesstypeDO);
}else {
messageDetail += "物品基本信息不存在,不能校验物品类型" + ",";
}
}catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
jobUtils.ifOutInventoryStatuses(detailDo.getFromInventoryStatus(), businesstypeDO);
jobUtils.ifInFromLocationType(detailDo.getLocationCode(), businesstypeDO);
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("HoldToScrapRequest");
if (requestsettingDO != null) {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
detailDo.setFromPackingNumber(null);
detailDo.setFromBatch(null);
detailDo.setFromContainerNumber(null);
} }
try {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InventoryChangeRequest");
//报废转隔离申请
if ("SCRAP".equals(detailDo.getFromInventoryStatus())) {
// 校验库存余额是否存在
try {
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add("SCRAP");
validatorLocationReturnManagementAccuracy(mainDo,detailDo,inventoryStatus,false);
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
String number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_REQUEST.getCode());
mainDo.setNumber(number);
// 校验业务类型
try {
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRequest");
mainDo.setBusinessType(businesstypeDO.getCode());
try {
if (itembasicDO != null){
jobUtils.ifInType(itembasicDO.getType(), businesstypeDO);
}else {
messageDetail += "物品基本信息不存在,不能校验物品类型" + ",";
}
}catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
jobUtils.ifOutInventoryStatuses(detailDo.getFromInventoryStatus(), businesstypeDO);
jobUtils.ifInFromLocationType(detailDo.getLocationCode(), businesstypeDO);
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ScrapToHoldRequest");
if (requestsettingDO != null) { if (requestsettingDO != null) {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
} mainDo.setRequestTime(LocalDateTime.now());
detailDo.setFromPackingNumber(null);
detailDo.setFromBatch(null);
detailDo.setFromContainerNumber(null);
}
//合格转报废
if ("Ok".equals(detailDo.getFromInventoryStatus())) {
// 校验库存余额是否存在
try {
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add("SCRAP");
validatorLocationReturnManagementAccuracy(mainDo,detailDo,inventoryStatus,false);
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_REQUEST.getCode());
mainDo.setNumber(number);
// 校验业务类型
try {
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRequest");
mainDo.setBusinessType(businesstypeDO.getCode()); mainDo.setBusinessType(businesstypeDO.getCode());
try {
if (itembasicDO != null){
jobUtils.ifInType(itembasicDO.getType(), businesstypeDO);
}else {
messageDetail += "物品基本信息不存在,不能校验物品类型" + ",";
}
}catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
jobUtils.ifOutInventoryStatuses(detailDo.getFromInventoryStatus(), businesstypeDO);
jobUtils.ifInFromLocationType(detailDo.getLocationCode(), businesstypeDO);
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("OkToScrapRequest");
if (requestsettingDO != null) {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
} }
} catch (ServiceException ex) {
detailDo.setFromPackingNumber(null); messageDetail += ex.getMessage() + ",";
detailDo.setFromBatch(null); }
detailDo.setFromContainerNumber(null); try {
ArrayList<String> inventoryStatusList = new ArrayList<>();
inventoryStatusList.add(detailDo.getFromInventoryStatus());
validatorLocationReturnManagementAccuracy(mainDo, detailDo, inventoryStatusList);
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
try {
ValidationUtils.validate(validator, detailDo);
} catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
} }
return messageDetail; return messageDetail;
} }
@ -620,10 +481,11 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
List<InventorychangeRequestDetailCreateReqVO> subList = createReqVO.getSubList(); List<InventorychangeRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<InventorychangeRequestDetailDO> subDOList = InventorychangeRequestDetailConvert.INSTANCE.convertList03(subList); List<InventorychangeRequestDetailDO> subDOList = InventorychangeRequestDetailConvert.INSTANCE.convertList03(subList);
for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : subDOList) { for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : subDOList) {
validateDetailMethod(inventorychangeRequestMainDO,inventorychangeRequestDetailDO); validateDetailMethod(inventorychangeRequestMainDO, inventorychangeRequestDetailDO);
} }
String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_REQUEST.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_REQUEST.getCode());
inventorychangeRequestMainDO.setNumber(number); inventorychangeRequestMainDO.setNumber(number);
inventorychangeRequestMainDO.setDepartmentCode(userApi.getUser(Long.valueOf(inventorychangeRequestMainDO.getCreator())).getDeptId().toString());
inventorychangeRequestMainMapper.insert(inventorychangeRequestMainDO); inventorychangeRequestMainMapper.insert(inventorychangeRequestMainDO);
for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : subDOList) { for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : subDOList) {
inventorychangeRequestDetailDO.setNumber(inventorychangeRequestMainDO.getNumber()); inventorychangeRequestDetailDO.setNumber(inventorychangeRequestMainDO.getNumber());
@ -640,7 +502,7 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
List<InventorychangeRequestDetailUpdateReqVO> subList = updateReqVO.getSubList(); List<InventorychangeRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
List<InventorychangeRequestDetailDO> subDOList = InventorychangeRequestDetailConvert.INSTANCE.convertList05(subList); List<InventorychangeRequestDetailDO> subDOList = InventorychangeRequestDetailConvert.INSTANCE.convertList05(subList);
for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : subDOList) { for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : subDOList) {
validateDetailMethod(inventorychangeRequestMainDO,inventorychangeRequestDetailDO); validateDetailMethod(inventorychangeRequestMainDO, inventorychangeRequestDetailDO);
} }
inventorychangeRequestMainMapper.updateById(inventorychangeRequestMainDO); inventorychangeRequestMainMapper.updateById(inventorychangeRequestMainDO);
inventorychangeRequestDetailMapper.updateBatch(subDOList); inventorychangeRequestDetailMapper.updateBatch(subDOList);
@ -655,7 +517,7 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
} }
//校验子表公共方法(适用于新增/修改) //校验子表公共方法(适用于新增/修改)
private void validateDetailMethod(InventorychangeRequestMainDO inventorychangeRequestMainDO,InventorychangeRequestDetailDO inventorychangeRequestDetailDO) { private void validateDetailMethod(InventorychangeRequestMainDO inventorychangeRequestMainDO, InventorychangeRequestDetailDO inventorychangeRequestDetailDO) {
ItembasicDO itembasicDO = this.validatorItembasic(inventorychangeRequestDetailDO.getItemCode()); ItembasicDO itembasicDO = this.validatorItembasic(inventorychangeRequestDetailDO.getItemCode());
if (!inventorychangeRequestDetailDO.getUom().equals(itembasicDO.getUom())) { if (!inventorychangeRequestDetailDO.getUom().equals(itembasicDO.getUom())) {
throw exception(UOM_ERROR, inventorychangeRequestDetailDO.getUom()); throw exception(UOM_ERROR, inventorychangeRequestDetailDO.getUom());
@ -674,61 +536,36 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
} }
//校验库存余额是否存在 //校验库存余额是否存在
List<String> inventoryStatus = new ArrayList<>(); List<String> inventoryStatus = new ArrayList<>();
//隔离转合格申请 inventoryStatus.add(inventorychangeRequestDetailDO.getFromInventoryStatus());
if ("HOLD".equals(inventorychangeRequestDetailDO.getFromInventoryStatus()) && "OK".equals(inventorychangeRequestDetailDO.getToInventoryStatus())) { CreateBusinessTypeAndRequestSetting(inventorychangeRequestMainDO, inventorychangeRequestDetailDO, itembasicDO);
inventoryStatus.add("HOLD"); validatorLocationReturnManagementAccuracy(inventorychangeRequestMainDO, inventorychangeRequestDetailDO, inventoryStatus);
String OkToScrapRequest = "HoldToOkRequest"; inventorychangeRequestDetailDO.setToBatch(inventorychangeRequestDetailDO.getFromBatch());
CreateBusinessTypeAndRequestSetting(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,itembasicDO,OkToScrapRequest); inventorychangeRequestDetailDO.setToPackingNumber(inventorychangeRequestDetailDO.getFromPackingNumber());
validatorLocationReturnManagementAccuracy(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,inventoryStatus,false); inventorychangeRequestDetailDO.setToContainerNumber(inventorychangeRequestDetailDO.getFromContainerNumber());
}
//合格转隔离申请
if ("OK".equals(inventorychangeRequestDetailDO.getFromInventoryStatus()) && "HOLD".equals(inventorychangeRequestDetailDO.getToInventoryStatus())) {
inventoryStatus.add("OK");
String OkToScrapRequest = "OkToHoldRequest";
CreateBusinessTypeAndRequestSetting(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,itembasicDO,OkToScrapRequest);
validatorLocationReturnManagementAccuracy(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,inventoryStatus,false);
}
//隔离转报废申请
if ("HOLD".equals(inventorychangeRequestDetailDO.getFromInventoryStatus()) && "SCRAP".equals(inventorychangeRequestDetailDO.getToInventoryStatus())) {
inventoryStatus.add("HOLD");
String OkToScrapRequest = "HoldToScrapRequest";
CreateBusinessTypeAndRequestSetting(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,itembasicDO,OkToScrapRequest);
validatorLocationReturnManagementAccuracy(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,inventoryStatus,false);
}
//报废转隔离申请
if ("SCRAP".equals(inventorychangeRequestDetailDO.getFromInventoryStatus())&& "HOLD".equals(inventorychangeRequestDetailDO.getToInventoryStatus())) {
inventoryStatus.add("SCRAP");
String OkToScrapRequest = "ScrapToHoldRequest";
CreateBusinessTypeAndRequestSetting(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,itembasicDO,OkToScrapRequest);
validatorLocationReturnManagementAccuracy(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,inventoryStatus,false);
}
//合格转报废申请
if ("OK".equals(inventorychangeRequestDetailDO.getFromInventoryStatus())&& "SCRAP".equals(inventorychangeRequestDetailDO.getToInventoryStatus())) {
inventoryStatus.add("SCRAP");
String OkToScrapRequest = "OkToScrapRequest";
CreateBusinessTypeAndRequestSetting(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,itembasicDO,OkToScrapRequest);
validatorLocationReturnManagementAccuracy(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,inventoryStatus,false);
}
} }
//子表校验来源库位基础信息 //子表校验来源库位基础信息
private void CreateBusinessTypeAndRequestSetting(InventorychangeRequestMainDO inventorychangeRequestMainDO,InventorychangeRequestDetailDO inventorychangeRequestDetailDO, ItembasicDO itembasicDO, String businesstypeCode) { private void CreateBusinessTypeAndRequestSetting(InventorychangeRequestMainDO inventorychangeRequestMainDO, InventorychangeRequestDetailDO inventorychangeRequestDetailDO, ItembasicDO itembasicDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType(businesstypeCode); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryChangeRequest");
inventorychangeRequestMainDO.setBusinessType(businesstypeDO.getCode()); inventorychangeRequestMainDO.setBusinessType(businesstypeDO.getCode());
if (itembasicDO != null){ if (itembasicDO != null) {
jobUtils.ifInType(itembasicDO.getType(), businesstypeDO); jobUtils.ifInType(itembasicDO.getType(), businesstypeDO);
} }
jobUtils.ifOutInventoryStatuses(inventorychangeRequestDetailDO.getFromInventoryStatus(), businesstypeDO); jobUtils.ifOutInventoryStatuses(inventorychangeRequestDetailDO.getToInventoryStatus(), businesstypeDO);
jobUtils.ifInFromLocationType(inventorychangeRequestDetailDO.getLocationCode(), businesstypeDO); jobUtils.ifInFromLocationType(inventorychangeRequestDetailDO.getLocationCode(), businesstypeDO);
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist(businesstypeCode); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InventoryChangeRequest");
if (requestsettingDO != null) { if (requestsettingDO != null) {
inventorychangeRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); inventorychangeRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree());
inventorychangeRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); inventorychangeRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit());
inventorychangeRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); inventorychangeRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute());
inventorychangeRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); inventorychangeRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
inventorychangeRequestMainDO.setRequestTime(LocalDateTime.now()); inventorychangeRequestMainDO.setRequestTime(LocalDateTime.now());
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute());
inventorychangeRequestMainDO.setStatus(requestStatusState.getState().getCode());
} }
} }
//子表校验来源库位基础信息 //子表校验来源库位基础信息
private LocationDO validatorLocation(String locationCode) { private LocationDO validatorLocation(String locationCode) {
LocationDO locationDO = locationService.selectLocation(locationCode); LocationDO locationDO = locationService.selectLocation(locationCode);
@ -740,7 +577,7 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
return itembasicService.selectItembasic(itemCode); return itembasicService.selectItembasic(itemCode);
} }
private void validatorLocationReturnManagementAccuracy(InventorychangeRequestMainDO inventorychangeRequestMainDO,InventorychangeRequestDetailDO inventorychangeRequestDetailDO,List<String> inventoryStatus,Boolean flag) { private void validatorLocationReturnManagementAccuracy(InventorychangeRequestMainDO inventorychangeRequestMainDO, InventorychangeRequestDetailDO inventorychangeRequestDetailDO, List<String> inventoryStatus) {
List<BalanceDO> balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(inventorychangeRequestDetailDO.getItemCode(), inventorychangeRequestDetailDO.getFromPackingNumber() List<BalanceDO> balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(inventorychangeRequestDetailDO.getItemCode(), inventorychangeRequestDetailDO.getFromPackingNumber()
, inventorychangeRequestDetailDO.getFromBatch(), inventorychangeRequestDetailDO.getLocationCode(), inventoryStatus); , inventorychangeRequestDetailDO.getFromBatch(), inventorychangeRequestDetailDO.getLocationCode(), inventoryStatus);
if (balanceDOList != null) { if (balanceDOList != null) {
@ -755,12 +592,9 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
inventorychangeRequestDetailDO.setToArrivdAte(balanceDO.getArriveDate()); inventorychangeRequestDetailDO.setToArrivdAte(balanceDO.getArriveDate());
inventorychangeRequestDetailDO.setToProduceDate(balanceDO.getProduceDate()); inventorychangeRequestDetailDO.setToProduceDate(balanceDO.getProduceDate());
inventorychangeRequestDetailDO.setToExpireDate(balanceDO.getExpireDate()); inventorychangeRequestDetailDO.setToExpireDate(balanceDO.getExpireDate());
if(flag == true){ // balanceDO.setInventoryStatus(inventorychangeRequestDetailDO.getToInventoryStatus());
balanceDO.setInventoryStatus(inventorychangeRequestDetailDO.getToInventoryStatus()); // balanceMapper.updateById(balanceDO);
balanceMapper.updateById(balanceDO); // trendsApi.createTrends(Long.valueOf(balanceDO.getId()), "transaction_balance", "库存修改申请生成库存修改记录时修改了库存余额库存状态", TrendsTypeEnum.UPDATE);
trendsApi.createTrends(Long.valueOf(balanceDO.getId()), "transaction_balance", "库存修改申请生成库存修改记录时修改了库存余额库存状态", TrendsTypeEnum.UPDATE);
}
} }
} }
} }

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobDetailService.java

@ -80,4 +80,5 @@ public interface InventorymoveJobDetailService {
*/ */
List<InventorymoveJobDetailDO> getInventorymoveJobDetailList(InventorymoveJobDetailExportReqVO exportReqVO); List<InventorymoveJobDetailDO> getInventorymoveJobDetailList(InventorymoveJobDetailExportReqVO exportReqVO);
List<InventorymoveJobDetailDO> selectList(Long masterId);
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobDetailServiceImpl.java

@ -5,6 +5,7 @@ import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobDetailC
import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobDetailExportReqVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobDetailExportReqVO;
import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobDetailPageReqVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobDetailPageReqVO;
import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobDetailUpdateReqVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobDetailDO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -88,4 +89,8 @@ public class InventorymoveJobDetailServiceImpl implements InventorymoveJobDetail
return inventorymoveJobDetailMapper.selectList(exportReqVO); return inventorymoveJobDetailMapper.selectList(exportReqVO);
} }
@Override
public List<InventorymoveJobDetailDO> selectList(Long masterId) {
return inventorymoveJobDetailMapper.selectList(masterId);
}
} }

31
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainService.java

@ -10,6 +10,7 @@ import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainPag
import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainUpdateReqVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
import org.springframework.lang.Nullable; import org.springframework.lang.Nullable;
/** /**
@ -95,4 +96,34 @@ public interface InventorymoveJobMainService {
* @return * @return
*/ */
Map<String,Integer> getCountByStatus(@Nullable Collection<String> types); Map<String,Integer> getCountByStatus(@Nullable Collection<String> types);
/**
* 关闭
* @param id
* @return
*/
public Integer closeInventorymoveJobMain(Long id);
/**
* 承接
* @param id
* @return
*/
public Integer acceptInventorymoveJobMain(Long id);
/**
* 取消
* @param id
* @return
*/
public Integer abandonInventorymoveJobMain(Long id);
/**
* 执行
* @param updateReqVO
* @return
*/
public String executeInventorymoveJobMain(InventorymoveJobMainUpdateReqVO updateReqVO);
List<InventorymoveJobMainDO> getInventorymoveJobMainList(CustomConditions conditions);
} }

278
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainServiceImpl.java

@ -1,15 +1,45 @@
package com.win.module.wms.service.inventorymoveJob; package com.win.module.wms.service.inventorymoveJob;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.CustomConditions;
import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainCreateReqVO; import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainExportReqVO; import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainPageReqVO; import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainUpdateReqVO; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO;
import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO;
import com.win.module.wms.controller.inventorymoveJob.vo.*;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordMainDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.mysql.inventorymoveJob.InventorymoveJobDetailMapper;
import com.win.module.wms.dal.mysql.inventorymoveRecord.InventorymoveRecordDetailMapper;
import com.win.module.wms.dal.mysql.inventorymoveRecord.InventorymoveRecordMainMapper;
import com.win.module.wms.enums.job.JobStatusEnum;
import com.win.module.wms.enums.job.JobStatusState;
import com.win.module.wms.service.expectin.ExpectinService;
import com.win.module.wms.service.expectout.ExpectoutService;
import com.win.module.wms.service.recordsetting.RecordsettingService;
import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO;
@ -19,6 +49,7 @@ import com.win.module.wms.convert.inventorymoveJob.InventorymoveJobMainConvert;
import com.win.module.wms.dal.mysql.inventorymoveJob.InventorymoveJobMainMapper; import com.win.module.wms.dal.mysql.inventorymoveJob.InventorymoveJobMainMapper;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; 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.*;
/** /**
@ -32,6 +63,30 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ
@Resource @Resource
private InventorymoveJobMainMapper inventorymoveJobMainMapper; private InventorymoveJobMainMapper inventorymoveJobMainMapper;
@Resource
private AdminUserApi userApi;
@Resource
private TrendsApi trendsApi;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private InventorymoveJobDetailService inventorymoveJobDetailService;
@Resource
private JobUtils jobUtils;
@Resource
private RecordsettingService recordsettingService;
@Resource
private InventorymoveJobDetailMapper inventorymoveJobDetailMapper;
@Resource
private InventorymoveRecordMainMapper inventorymoveRecordMainMapper;
@Resource
private InventorymoveRecordDetailMapper inventorymoveRecordDetailMapper;
@Resource
private ExpectoutService expectoutService;
@Resource
private ExpectinService expectinService;
@Resource
private TransactionService transactionService;
@Override @Override
public Long createInventorymoveJobMain(InventorymoveJobMainCreateReqVO createReqVO) { public Long createInventorymoveJobMain(InventorymoveJobMainCreateReqVO createReqVO) {
@ -59,9 +114,12 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ
inventorymoveJobMainMapper.deleteById(id); inventorymoveJobMainMapper.deleteById(id);
} }
private void validateInventorymoveJobMainExists(Long id) { private InventorymoveJobMainDO validateInventorymoveJobMainExists(Long id) {
if (inventorymoveJobMainMapper.selectById(id) == null) { InventorymoveJobMainDO inventorymoveJobMainDO = inventorymoveJobMainMapper.selectById(id);
if (inventorymoveJobMainDO == null) {
throw exception(INVENTORYMOVE_JOB_MAIN_NOT_EXISTS); throw exception(INVENTORYMOVE_JOB_MAIN_NOT_EXISTS);
} else {
return inventorymoveJobMainDO;
} }
} }
@ -84,23 +142,30 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ
public List<InventorymoveJobMainDO> getInventorymoveJobMainList(InventorymoveJobMainExportReqVO exportReqVO) { public List<InventorymoveJobMainDO> getInventorymoveJobMainList(InventorymoveJobMainExportReqVO exportReqVO) {
return inventorymoveJobMainMapper.selectList(exportReqVO); return inventorymoveJobMainMapper.selectList(exportReqVO);
} }
@Override @Override
public PageResult<InventorymoveJobMainDO> getInventorymoveJobMainSenior(CustomConditions conditions) { public PageResult<InventorymoveJobMainDO> getInventorymoveJobMainSenior(CustomConditions conditions) {
return inventorymoveJobMainMapper.selectSenior(conditions); return inventorymoveJobMainMapper.selectSenior(conditions);
} }
@Override @Override
public InventorymoveJobMainDO inventorymoveJobMainDoStatusRight(String pnumber, String pstatus) { public InventorymoveJobMainDO inventorymoveJobMainDoStatusRight(String pnumber, String pstatus) {
QueryWrapper queryWrapper = new QueryWrapper(); QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("number",pnumber); queryWrapper.eq("number", pnumber);
queryWrapper.eq("status",pstatus); queryWrapper.eq("status", pstatus);
InventorymoveJobMainDO inventorymoveJobMainDO = inventorymoveJobMainMapper.selectOne(queryWrapper); InventorymoveJobMainDO inventorymoveJobMainDO = inventorymoveJobMainMapper.selectOne(queryWrapper);
if(inventorymoveJobMainDO != null){ if (inventorymoveJobMainDO != null) {
return inventorymoveJobMainDO; return inventorymoveJobMainDO;
}else { } else {
throw exception(INVENTORYMOVE_JOB_MAIN_STATUS_ERROR); throw exception(INVENTORYMOVE_JOB_MAIN_STATUS_ERROR);
} }
} }
@Override
public List<InventorymoveJobMainDO> getInventorymoveJobMainList(CustomConditions conditions) {
return inventorymoveJobMainMapper.selectSeniorList(conditions);
}
@Override @Override
public Map<String, Integer> getCountByStatus(Collection<String> types) { public Map<String, Integer> getCountByStatus(Collection<String> types) {
Long l = inventorymoveJobMainMapper.selectListCount(types); Long l = inventorymoveJobMainMapper.selectListCount(types);
@ -109,4 +174,197 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ
map.put("count", l.intValue()); map.put("count", l.intValue());
return map; return map;
} }
@Override
@Transactional
public Integer acceptInventorymoveJobMain(Long id) {
InventorymoveJobMainDO inventorymoveJobMainDO = this.validateInventorymoveJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(inventorymoveJobMainDO.getStatus());
if (!jobStatusState.accept()) {
throw exception(DELIVER_JOB_MAIN_STATUS_ERROR);
}
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
inventorymoveJobMainDO.setStatus(jobStatusState.getState().getCode());
inventorymoveJobMainDO.setAcceptUserId(String.valueOf(userId));
inventorymoveJobMainDO.setAcceptUserName(userRespDTO.getNickname());
inventorymoveJobMainDO.setAcceptTime(LocalDateTime.now());
trendsApi.createTrends(id, "MoveJob", "承接了库存转移任务", TrendsTypeEnum.UPDATE);
return inventorymoveJobMainMapper.updateById(inventorymoveJobMainDO);
}
@Override
@Transactional
public Integer abandonInventorymoveJobMain(Long id) {
InventorymoveJobMainDO inventorymoveJobMainDO = this.validateInventorymoveJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(inventorymoveJobMainDO.getStatus());
if (!jobStatusState.cancelAccept()) {
throw exception(DELIVER_JOB_MAIN_STATUS_ERROR);
}
inventorymoveJobMainDO.setStatus(jobStatusState.getState().getCode());
inventorymoveJobMainDO.setAcceptUserId(null);
inventorymoveJobMainDO.setAcceptUserName(null);
inventorymoveJobMainDO.setAcceptTime(null);
trendsApi.createTrends(id, "MoveJob", "取消了库存转移任务", TrendsTypeEnum.UPDATE);
return inventorymoveJobMainMapper.updateById(inventorymoveJobMainDO);
}
@Override
@Transactional
public Integer closeInventorymoveJobMain(Long id) {
InventorymoveJobMainDO inventorymoveJobMainDO = this.validateInventorymoveJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(inventorymoveJobMainDO.getStatus());
if (!jobStatusState.close()) {
throw exception(DELIVER_JOB_MAIN_STATUS_ERROR);
}
inventorymoveJobMainDO.setStatus(jobStatusState.getState().getCode());
trendsApi.createTrends(id, "MoveJob", "关闭了库存转移任务", TrendsTypeEnum.UPDATE);
return inventorymoveJobMainMapper.updateById(inventorymoveJobMainDO);
}
@Override
@Transactional
public String executeInventorymoveJobMain(InventorymoveJobMainUpdateReqVO inventorymoveJobMainUpdateReqVO) {
RecordsettingDO recordsettingDO = null;
BusinesstypeDO businesstypeDO = null;
String number = "";
//查询数据
InventorymoveJobMainDO inventorymoveJobMainDO = this.validateInventorymoveJobMainExists(inventorymoveJobMainUpdateReqVO.getId());
List<InventorymoveJobDetailDO> subList = inventorymoveJobDetailService.selectList(inventorymoveJobMainDO.getId());
JobStatusState jobStatusState = new JobStatusState(inventorymoveJobMainDO.getStatus());
boolean flag = jobStatusState.execute();
if (!flag) {
throw new ServiceException(INVENTORYMOVE_JOB_MAIN_STATUS_ERROR);
}
//更新完成信息
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
inventorymoveJobMainDO.setStatus(jobStatusState.getState().getCode());
inventorymoveJobMainDO.setCompleteTime(LocalDateTime.now());
inventorymoveJobMainDO.setCompleteUserId(String.valueOf(userRespDTO.getId()));
inventorymoveJobMainDO.setCompleteUserName(userRespDTO.getNickname());
//更新任务表状态
int result = inventorymoveJobMainMapper.updateById(inventorymoveJobMainDO);
//创建客户收货记录主表
InventorymoveRecordMainDO inventorymoveRecordMainDO = new InventorymoveRecordMainDO();
BeanUtils.copyProperties(inventorymoveJobMainDO, inventorymoveRecordMainDO);
inventorymoveRecordMainDO.setJobNumber(inventorymoveJobMainDO.getNumber());
inventorymoveRecordMainDO.setId(null);
inventorymoveRecordMainDO.setAvailable("TRUE");
inventorymoveRecordMainDO.setExecuteTime(LocalDateTime.now());
inventorymoveRecordMainDO.setActiveDate(LocalDateTime.now());
inventorymoveRecordMainDO.setDueTime(inventorymoveJobMainDO.getRequestDueTime());
if("HoldToOkJob".equals(inventorymoveRecordMainDO.getBusinessType())){
number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToOkRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkRecord");
} else if("OkToHoldJob".equals(inventorymoveRecordMainDO.getBusinessType())){
number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("OkToHoldRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRecord");
} else if("HoldToScrapJob".equals(inventorymoveRecordMainDO.getBusinessType())){
number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToScrapRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRecord");
} else if("ScrapToHoldJob".equals(inventorymoveRecordMainDO.getBusinessType())){
number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("ScrapToHoldRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRecord");
} else if("OkToScrapJob".equals(inventorymoveRecordMainDO.getBusinessType())){
number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("OkToScrapRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRecord");
}
inventorymoveRecordMainDO.setNumber(number);
inventorymoveRecordMainDO.setBusinessType(businesstypeDO.getCode());
inventorymoveRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType());
inventorymoveRecordMainDO.setInTransactionType(businesstypeDO.getInTransactionType());
inventorymoveRecordMainDO.setInterfaceType(recordsettingDO.getInterfaceType());
inventorymoveRecordMainMapper.insert(inventorymoveRecordMainDO);
List<InventorymoveJobDetailUpdateReqVO> inventorymoveJobDetailUpdateReqVOList = inventorymoveJobMainUpdateReqVO.getSubList();
List<InventorymoveRecordDetailDO> inventorymoveRecordDetailDOList = new ArrayList<>();
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
subList.forEach(subListItem -> {
inventorymoveJobDetailUpdateReqVOList.forEach(DetailUpdateItem -> {
// 匹配任务子表与参数中子表
if (DetailUpdateItem.getId().equals(subListItem.getId())) {
List<Map<String,String>> recordList = DetailUpdateItem.getRecordList();
recordList.forEach(recordLstItem -> {InventorymoveRecordDetailDO inventorymoveRecordDetailDO = new InventorymoveRecordDetailDO();
BeanUtils.copyProperties(DetailUpdateItem, inventorymoveRecordDetailDO);
inventorymoveRecordDetailDO.setJobDetailId(DetailUpdateItem.getId().toString());
inventorymoveRecordDetailDO.setId(null);
inventorymoveRecordDetailDO.setCreator(null);
inventorymoveRecordDetailDO.setCreateTime(null);
inventorymoveRecordDetailDO.setUpdater(null);
inventorymoveRecordDetailDO.setUpdateTime(null);
inventorymoveRecordDetailDO.setNumber(inventorymoveRecordMainDO.getNumber());
inventorymoveRecordDetailDO.setInterfaceType(inventorymoveRecordMainDO.getInterfaceType());
inventorymoveRecordDetailDO.setMasterId(inventorymoveRecordMainDO.getId().toString());
inventorymoveRecordDetailDO.setQty(new BigDecimal(recordLstItem.get("handleQty")));
inventorymoveRecordDetailDO.setToPackingNumber(recordLstItem.get("toPackingNumber")==null?"":recordLstItem.get("toPackingNumber"));
inventorymoveRecordDetailDO.setToContainerNumber(recordLstItem.get("toContainerNumber")==null?"":recordLstItem.get("toContainerNumber"));
inventorymoveRecordDetailDO.setToBatch(recordLstItem.get("toBatch")==null?"":recordLstItem.get("toBatch"));
inventorymoveRecordDetailDO.setToLocationCode(recordLstItem.get("toLocationCode"));
inventorymoveRecordDetailDO.setToInventoryStatus(recordLstItem.get("toInventoryStatus"));
inventorymoveRecordDetailDO.setFromPackingNumber(DetailUpdateItem.getPackingNumber());
inventorymoveRecordDetailDO.setFromContainerNumber(DetailUpdateItem.getContainerNumber());
inventorymoveRecordDetailDO.setFromAreaCode(inventorymoveJobMainDO.getFromAreaCodes());
inventorymoveRecordDetailDO.setToAreaCode(inventorymoveJobMainDO.getToAreaCodes());
inventorymoveRecordDetailDO.setFromBatch(DetailUpdateItem.getBatch());
inventorymoveRecordDetailDO.setFromInventoryStatus(DetailUpdateItem.getInventoryStatus());
inventorymoveRecordDetailDOList.add(inventorymoveRecordDetailDO);
//添加库存事务list
// 入动作
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(inventorymoveRecordDetailDO, transactionCreateReqVO);
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(inventorymoveRecordMainDO.getInTransactionType());
transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVO.setBusinessType(inventorymoveJobMainDO.getBusinessType());
transactionCreateReqVO.setOwnerCode(inventorymoveRecordDetailDO.getFromOwnerCode());
transactionCreateReqVO.setRecordNumber(inventorymoveRecordMainDO.getNumber());
transactionCreateReqVO.setId(null);
transactionCreateReqVO.setPackingNumber(DetailUpdateItem.getPackingNumber());
transactionCreateReqVO.setBatch(DetailUpdateItem.getBatch());
transactionCreateReqVO.setContainerNumber(DetailUpdateItem.getContainerNumber());
transactionCreateReqVO.setInventoryStatus(DetailUpdateItem.getInventoryStatus());
transactionCreateReqVO.setAmount(BigDecimal.ZERO);
transactionCreateReqVO.setLocationCode(recordLstItem.get("toLocationCode").toString());
transactionCreateReqVOList.add(transactionCreateReqVO);
// 出动作
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(inventorymoveRecordDetailDO, transactionCreateReqVOOut);
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(inventorymoveRecordMainDO.getOutTransactionType());
transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setBusinessType(inventorymoveJobMainDO.getBusinessType());
transactionCreateReqVOOut.setOwnerCode(inventorymoveRecordDetailDO.getFromOwnerCode());
transactionCreateReqVOOut.setRecordNumber(inventorymoveRecordMainDO.getNumber());
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOOut.setPackingNumber(DetailUpdateItem.getPackingNumber());
transactionCreateReqVOOut.setBatch(DetailUpdateItem.getBatch());
transactionCreateReqVOOut.setContainerNumber(DetailUpdateItem.getContainerNumber());
transactionCreateReqVOOut.setInventoryStatus(DetailUpdateItem.getInventoryStatus());
transactionCreateReqVOOut.setAmount(BigDecimal.ZERO);
transactionCreateReqVOOut.setLocationCode(subListItem.getFromLocationCode());
transactionCreateReqVOList.add(transactionCreateReqVOOut);});
}
});
});
if(!inventorymoveRecordDetailDOList.isEmpty()) {
inventorymoveRecordDetailMapper.insertBatch(inventorymoveRecordDetailDOList);
}
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//移除预计入
expectinService.deleteExpectinByJobNumber(inventorymoveJobMainDO.getNumber());
//移除预计出
expectoutService.deleteExpectoutByJobNumber(inventorymoveJobMainDO.getNumber());
//变更记录
trendsApi.createTrends(inventorymoveJobMainDO.getId(), inventorymoveJobMainDO.getBusinessType(), "执行了库存转移任务", TrendsTypeEnum.UPDATE);
return number;
}
} }

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordDetailService.java

@ -80,4 +80,5 @@ public interface InventorymoveRecordDetailService {
*/ */
List<InventorymoveRecordDetailDO> getInventorymoveRecordDetailList(InventorymoveRecordDetailExportReqVO exportReqVO); List<InventorymoveRecordDetailDO> getInventorymoveRecordDetailList(InventorymoveRecordDetailExportReqVO exportReqVO);
List<InventorymoveRecordDetailDO> selectList(Long masterId);
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordDetailServiceImpl.java

@ -5,6 +5,7 @@ import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordD
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordDetailExportReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordDetailExportReqVO;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordDetailPageReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordDetailPageReqVO;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordDetailUpdateReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -87,4 +88,8 @@ public class InventorymoveRecordDetailServiceImpl implements InventorymoveRecord
return inventorymoveRecordDetailMapper.selectList(exportReqVO); return inventorymoveRecordDetailMapper.selectList(exportReqVO);
} }
@Override
public List<InventorymoveRecordDetailDO> selectList(Long masterId) {
return inventorymoveRecordDetailMapper.selectList(masterId);
}
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainService.java

@ -10,6 +10,7 @@ import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordM
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainUpdateReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordMainDO; import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordMainDO;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
/** /**
* 库存转移记录主 Service 接口 * 库存转移记录主 Service 接口
@ -80,4 +81,5 @@ public interface InventorymoveRecordMainService {
*/ */
List<InventorymoveRecordMainDO> getInventorymoveRecordMainList(InventorymoveRecordMainExportReqVO exportReqVO); List<InventorymoveRecordMainDO> getInventorymoveRecordMainList(InventorymoveRecordMainExportReqVO exportReqVO);
List<InventorymoveRecordMainDO> getInventorymoveRecordMainList(CustomConditions conditions);
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainServiceImpl.java

@ -5,6 +5,7 @@ import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordM
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainExportReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainExportReqVO;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainPageReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainPageReqVO;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainUpdateReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -88,4 +89,8 @@ public class InventorymoveRecordMainServiceImpl implements InventorymoveRecordMa
return inventorymoveRecordMainMapper.selectList(exportReqVO); return inventorymoveRecordMainMapper.selectList(exportReqVO);
} }
@Override
public List<InventorymoveRecordMainDO> getInventorymoveRecordMainList(CustomConditions conditions) {
return inventorymoveRecordMainMapper.selectSeniorList(conditions);
}
} }

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestDetailService.java

@ -80,4 +80,5 @@ public interface InventorymoveRequestDetailService {
*/ */
List<InventorymoveRequestDetailDO> getInventorymoveRequestDetailList(InventorymoveRequestDetailExportReqVO exportReqVO); List<InventorymoveRequestDetailDO> getInventorymoveRequestDetailList(InventorymoveRequestDetailExportReqVO exportReqVO);
List<InventorymoveRequestDetailDO> selectList(Long masterId);
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestDetailServiceImpl.java

@ -12,6 +12,7 @@ import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestMai
import com.win.module.wms.dal.dataobject.balance.BalanceDO; 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.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO; import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
@ -159,4 +160,8 @@ public class InventorymoveRequestDetailServiceImpl implements InventorymoveReque
return inventorymoveRequestDetailMapper.selectList(exportReqVO); return inventorymoveRequestDetailMapper.selectList(exportReqVO);
} }
@Override
public List<InventorymoveRequestDetailDO> selectList(Long masterId) {
return inventorymoveRequestDetailMapper.selectList(masterId);
}
} }

44
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainService.java

@ -85,7 +85,49 @@ public interface InventorymoveRequestMainService {
* @param updatePart 是否支持更新 * @param updatePart 是否支持更新
* @return 导入结果 * @return 导入结果
*/ */
public List<InventorymoveRequestMainImportErrorVO> importInventorymoveRequestMainList(List<InventorymoveRequestMainCreateReqVO> datas, Integer mode, boolean updatePart); public List<InventorymoveRequestMainImportErrorVO> importInventorymoveRequestMainList(List<InventorymoveRequestMainCreateReqVO> datas, Integer mode, String fromInventoryStatus , String toInventoryStatus ,boolean updatePart);
/**
* 关闭
* @param id
* @return
*/
public Integer closeInventorymoveRequestMain(Long id);
/**
* 重新添加
* @param id
* @return
*/
public Integer reAddInventorymoveRequestMain(Long id);
/**
* 提交
* @param id
* @return
*/
public Integer submitInventorymoveRequestMain(Long id);
/**
* 审批通过
* @param id
* @return
*/
public Integer agreeInventorymoveRequestMain(Long id);
/**
* 执行
* @param id
* @return
*/
public Integer handleInventorymoveRequestMain(Long id);
/**
* 审批驳回
* @param id
* @return
*/
public Integer abortInventorymoveRequestMain(Long id);
List<InventorymoveRequestMainDO> getInventorymoveRequestMainList(CustomConditions conditions);
} }

806
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java

File diff suppressed because it is too large
Loading…
Cancel
Save