Browse Source

Merge remote-tracking branch 'origin/master'

master
chenfang 2 years ago
parent
commit
586bcce003
  1. 10
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 135
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/ContainerBindRecordDetailController.java
  3. 135
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/ContainerBindRecordMainController.java
  4. 63
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordDetailBaseVO.java
  5. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordDetailCreateReqVO.java
  6. 71
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordDetailExcelVO.java
  7. 22
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordDetailExportReqVO.java
  8. 27
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordDetailPageReqVO.java
  9. 22
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordDetailRespVO.java
  10. 20
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordDetailUpdateReqVO.java
  11. 84
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordMainBaseVO.java
  12. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordMainCreateReqVO.java
  13. 97
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordMainExcelVO.java
  14. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordMainExportReqVO.java
  15. 24
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordMainPageReqVO.java
  16. 37
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordMainRespVO.java
  17. 20
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordMainUpdateReqVO.java
  18. 23
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/RuleController.java
  19. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/vo/PrecisionStrategyReqVO2.java
  20. 38
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/containerbindrecord/ContainerBindRecordDetailConvert.java
  21. 37
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/containerbindrecord/ContainerBindRecordMainConvert.java
  22. 94
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/containerbindrecord/ContainerBindRecordDetailDO.java
  23. 110
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/containerbindrecord/ContainerBindRecordMainDO.java
  24. 39
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerbindrecord/ContainerBindRecordDetailMapper.java
  25. 37
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerbindrecord/ContainerBindRecordMainMapper.java
  26. 81
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/containerbindrecord/ContainerBindRecordDetailService.java
  27. 109
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/containerbindrecord/ContainerBindRecordDetailServiceImpl.java
  28. 81
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/containerbindrecord/ContainerBindRecordMainService.java
  29. 109
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/containerbindrecord/ContainerBindRecordMainServiceImpl.java
  30. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java
  31. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java
  32. 37
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java
  33. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleService.java
  34. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleServiceImpl.java
  35. 12
      win-module-wms/win-module-wms-biz/src/main/resources/mapper/containerbindrecord/ContainerBindRecordDetailMapper.xml
  36. 12
      win-module-wms/win-module-wms-biz/src/main/resources/mapper/containerbindrecord/ContainerBindRecordMainMapper.xml

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

@ -999,6 +999,9 @@ public interface ErrorCodeConstants {
//报废出库记录ErrorCode
ErrorCode SCRAP_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_151_000, "报废出库记录主不存在");
ErrorCode SCRAP_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_151_001, "报废出库记录子不存在");
//盘点计划ErrorCode
ErrorCode COUNT_PLAN_MAIN_NOT_EXISTS = new ErrorCode(1_000_152_000, "盘点计划主不存在");
ErrorCode COUNT_PLAN_DETAIL_NOT_EXISTS = new ErrorCode(1_000_152_001, "盘点计划子不存在");
@ -1067,6 +1070,13 @@ public interface ErrorCodeConstants {
ErrorCode SWITCH_NOT_EXISTS = new ErrorCode(1_000_166_000, "单据开关不存在");
//企业ErrorCode
ErrorCode ENTERPRISE_NOT_EXISTS = new ErrorCode(1_000_167_000, "企业不存在");
// 器具绑定记录
ErrorCode CONTAINER_BIND_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_168_000, "器具绑定记录主不存在");
ErrorCode CONTAINER_BIND_RECORD_MAIN_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_168_001, "器具绑定导出主列表不存在");
ErrorCode CONTAINER_BIND_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_168_002, "器具绑定记录子不存在");
ErrorCode CONTAINER_BIND_RECORD_DETAIL_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_168_003, "器具绑定导出子列表不存在");
//UOM ErrorCode
ErrorCode BATCH_EXCEPTION = new ErrorCode(1_000_400_000, "批次问题:【{}】");
ErrorCode UOM_EXCEPTION = new ErrorCode(1_000_401_000, "单位问题:【{}】");

135
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/ContainerBindRecordDetailController.java

@ -0,0 +1,135 @@
package com.win.module.wms.controller.containerbindrecord;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.wms.controller.containerbindrecord.vo.*;
import com.win.module.wms.convert.containerbindrecord.ContainerBindRecordDetailConvert;
import com.win.module.wms.dal.dataobject.containerbindrecord.ContainerBindRecordDetailDO;
import com.win.module.wms.service.containerbindrecord.ContainerBindRecordDetailService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 器具绑定记录子")
@RestController
@RequestMapping("/wms/container-bind-record-detail")
@Validated
public class ContainerBindRecordDetailController {
@Resource
private ContainerBindRecordDetailService containerBindRecordDetailService;
@PostMapping("/create")
@Operation(summary = "创建器具绑定记录子")
@PreAuthorize("@ss.hasPermission('wms:container-bind-record-detail:create')")
public CommonResult<Long> createContainerBindRecordDetail(@Valid @RequestBody ContainerBindRecordDetailCreateReqVO createReqVO) {
return success(containerBindRecordDetailService.createContainerBindRecordDetail(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新器具绑定记录子")
@PreAuthorize("@ss.hasPermission('wms:container-bind-record-detail:update')")
public CommonResult<Boolean> updateContainerBindRecordDetail(@Valid @RequestBody ContainerBindRecordDetailUpdateReqVO updateReqVO) {
int result = containerBindRecordDetailService.updateContainerBindRecordDetail(updateReqVO);
return success(result > 0);
}
@DeleteMapping("/delete")
@Operation(summary = "删除器具绑定记录子")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:container-bind-record-detail:delete')")
public CommonResult<Boolean> deleteContainerBindRecordDetail(@RequestParam("id") Long id) {
int result = containerBindRecordDetailService.deleteContainerBindRecordDetail(id);
return success(result > 0);
}
@GetMapping("/get")
@Operation(summary = "获得器具绑定记录子")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('wms:container-bind-record-detail:query')")
public CommonResult<ContainerBindRecordDetailRespVO> getContainerBindRecordDetail(@RequestParam("id") Long id) {
ContainerBindRecordDetailDO containerBindRecordDetail = containerBindRecordDetailService.getContainerBindRecordDetail(id);
return success(ContainerBindRecordDetailConvert.INSTANCE.convert(containerBindRecordDetail));
}
@GetMapping("/list")
@Operation(summary = "获得器具绑定记录子列表")
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
@PreAuthorize("@ss.hasPermission('wms:container-bind-record-detail:query')")
public CommonResult<List<ContainerBindRecordDetailRespVO>> getContainerBindRecordDetailList(@RequestParam("ids") Collection<Long> ids) {
List<ContainerBindRecordDetailDO> list = containerBindRecordDetailService.getContainerBindRecordDetailList(ids);
return success(ContainerBindRecordDetailConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@Operation(summary = "获得器具绑定记录子分页")
@PreAuthorize("@ss.hasPermission('wms:container-bind-record-detail:query')")
public CommonResult<PageResult<ContainerBindRecordDetailRespVO>> getContainerBindRecordDetailPage(@Valid ContainerBindRecordDetailPageReqVO pageVO) {
PageResult<ContainerBindRecordDetailDO> pageResult = containerBindRecordDetailService.getContainerBindRecordDetailPage(pageVO);
return success(ContainerBindRecordDetailConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/export-excel")
@Operation(summary = "导出器具绑定记录子 Excel")
@PreAuthorize("@ss.hasPermission('wms:container-bind-record-detail:export')")
@OperateLog(type = EXPORT)
public void exportContainerBindRecordDetailExcel(@Valid ContainerBindRecordDetailExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<ContainerBindRecordDetailDO> list = containerBindRecordDetailService.getContainerBindRecordDetailList(exportReqVO);
// 导出 Excel
List<ContainerBindRecordDetailExcelVO> datas = ContainerBindRecordDetailConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "器具绑定记录子.xls", "数据", ContainerBindRecordDetailExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入器具绑定记录子模板")
public void importTemplate(HttpServletResponse response) throws IOException {
List<ContainerBindRecordDetailExcelVO> list = Arrays.asList();
// 输出
ExcelUtils.write(response, "器具绑定记录子基本信息导入模板.xls", "器具绑定记录子基本信息列表", ContainerBindRecordDetailExcelVO.class, list);
}
@PostMapping("/import")
@Operation(summary = "导入器具绑定记录子基本信息")
@Parameters({
@Parameter(name = "file", description = "Excel 文件", required = true),
@Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
@Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")
})
@PreAuthorize("@ss.hasPermission('wms:container-bind-record-detail:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<ContainerBindRecordDetailExcelVO> list = ExcelUtils.read(file, ContainerBindRecordDetailExcelVO.class);
List<ContainerBindRecordDetailExcelVO> errorList = containerBindRecordDetailService.importContainerBindRecordDetailList(list, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("器具绑定记录子基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);
}
}

135
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/ContainerBindRecordMainController.java

@ -0,0 +1,135 @@
package com.win.module.wms.controller.containerbindrecord;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.wms.controller.containerbindrecord.vo.*;
import com.win.module.wms.convert.containerbindrecord.ContainerBindRecordMainConvert;
import com.win.module.wms.dal.dataobject.containerbindrecord.ContainerBindRecordMainDO;
import com.win.module.wms.service.containerbindrecord.ContainerBindRecordMainService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 器具绑定记录主")
@RestController
@RequestMapping("/wms/container-bind-record-main")
@Validated
public class ContainerBindRecordMainController {
@Resource
private ContainerBindRecordMainService containerBindRecordMainService;
@PostMapping("/create")
@Operation(summary = "创建器具绑定记录主")
@PreAuthorize("@ss.hasPermission('wms:container-bind-record-main:create')")
public CommonResult<Long> createContainerBindRecordMain(@Valid @RequestBody ContainerBindRecordMainCreateReqVO createReqVO) {
return success(containerBindRecordMainService.createContainerBindRecordMain(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新器具绑定记录主")
@PreAuthorize("@ss.hasPermission('wms:container-bind-record-main:update')")
public CommonResult<Boolean> updateContainerBindRecordMain(@Valid @RequestBody ContainerBindRecordMainUpdateReqVO updateReqVO) {
int result = containerBindRecordMainService.updateContainerBindRecordMain(updateReqVO);
return success(result > 0);
}
@DeleteMapping("/delete")
@Operation(summary = "删除器具绑定记录主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:container-bind-record-main:delete')")
public CommonResult<Boolean> deleteContainerBindRecordMain(@RequestParam("id") Long id) {
int result = containerBindRecordMainService.deleteContainerBindRecordMain(id);
return success(result > 0);
}
@GetMapping("/get")
@Operation(summary = "获得器具绑定记录主")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('wms:container-bind-record-main:query')")
public CommonResult<ContainerBindRecordMainRespVO> getContainerBindRecordMain(@RequestParam("id") Long id) {
ContainerBindRecordMainDO containerBindRecordMain = containerBindRecordMainService.getContainerBindRecordMain(id);
return success(ContainerBindRecordMainConvert.INSTANCE.convert(containerBindRecordMain));
}
@GetMapping("/list")
@Operation(summary = "获得器具绑定记录主列表")
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
@PreAuthorize("@ss.hasPermission('wms:container-bind-record-main:query')")
public CommonResult<List<ContainerBindRecordMainRespVO>> getContainerBindRecordMainList(@RequestParam("ids") Collection<Long> ids) {
List<ContainerBindRecordMainDO> list = containerBindRecordMainService.getContainerBindRecordMainList(ids);
return success(ContainerBindRecordMainConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@Operation(summary = "获得器具绑定记录主分页")
@PreAuthorize("@ss.hasPermission('wms:container-bind-record-main:query')")
public CommonResult<PageResult<ContainerBindRecordMainRespVO>> getContainerBindRecordMainPage(@Valid ContainerBindRecordMainPageReqVO pageVO) {
PageResult<ContainerBindRecordMainDO> pageResult = containerBindRecordMainService.getContainerBindRecordMainPage(pageVO);
return success(ContainerBindRecordMainConvert.INSTANCE.convertPage(pageResult));
}
@GetMapping("/export-excel")
@Operation(summary = "导出器具绑定记录主 Excel")
@PreAuthorize("@ss.hasPermission('wms:container-bind-record-main:export')")
@OperateLog(type = EXPORT)
public void exportContainerBindRecordMainExcel(@Valid ContainerBindRecordMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<ContainerBindRecordMainDO> list = containerBindRecordMainService.getContainerBindRecordMainList(exportReqVO);
// 导出 Excel
List<ContainerBindRecordMainExcelVO> datas = ContainerBindRecordMainConvert.INSTANCE.convertList02(list);
ExcelUtils.write(response, "器具绑定记录主.xls", "数据", ContainerBindRecordMainExcelVO.class, datas);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入器具绑定记录主模板")
public void importTemplate(HttpServletResponse response) throws IOException {
List<ContainerBindRecordMainExcelVO> list = Arrays.asList();
// 输出
ExcelUtils.write(response, "器具绑定记录主基本信息导入模板.xls", "器具绑定记录主基本信息列表", ContainerBindRecordMainExcelVO.class, list);
}
@PostMapping("/import")
@Operation(summary = "导入器具绑定记录主基本信息")
@Parameters({
@Parameter(name = "file", description = "Excel 文件", required = true),
@Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
@Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true")
})
@PreAuthorize("@ss.hasPermission('wms:container-bind-record-main:import')")
public CommonResult<Map<String, Object>> importExcel(HttpServletResponse response,
@RequestParam("file") MultipartFile file,
@RequestParam(value = "mode") Integer mode,
@RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception {
List<ContainerBindRecordMainExcelVO> list = ExcelUtils.read(file, ContainerBindRecordMainExcelVO.class);
List<ContainerBindRecordMainExcelVO> errorList = containerBindRecordMainService.importContainerBindRecordMainList(list, mode, updatePart);
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("器具绑定记录主基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);
}
}

63
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordDetailBaseVO.java

@ -0,0 +1,63 @@
package com.win.module.wms.controller.containerbindrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
/**
* 器具绑定记录子 Base VO提供给添加修改详细的子 VO 使用
* 如果子 VO 存在差异的字段请不要添加到这里影响 Swagger 文档生成
*/
@Data
public class ContainerBindRecordDetailBaseVO {
@Schema(description = "单据号")
private String number;
@Schema(description = "主表ID", example = "3678")
private Long masterId;
@Schema(description = "包装号")
private String packingNumber;
@Schema(description = "器具号")
private String containerNumber;
@Schema(description = "批次")
private String batch;
@Schema(description = "物品代码")
private String itemCode;
@Schema(description = "物品名称", example = "王五")
private String itemName;
@Schema(description = "物品描述1")
private String itemDesc1;
@Schema(description = "物品描述2")
private String itemDesc2;
@Schema(description = "项目代码")
private String projectCode;
@Schema(description = "数量")
private BigDecimal qty;
@Schema(description = "计量单位")
private String uom;
@Schema(description = "接口类型", example = "1")
private String interfaceType;
@Schema(description = "代码")
private String code;
@Schema(description = "地点ID", example = "地点ID")
private String siteId;
@Schema(description = "备注", example = "备注")
private String remark;
}

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordDetailCreateReqVO.java

@ -0,0 +1,14 @@
package com.win.module.wms.controller.containerbindrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@Schema(description = "管理后台 - 器具绑定记录子创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ContainerBindRecordDetailCreateReqVO extends ContainerBindRecordDetailBaseVO {
}

71
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordDetailExcelVO.java

@ -0,0 +1,71 @@
package com.win.module.wms.controller.containerbindrecord.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 器具绑定记录子 Excel VO
*
* @author 超级管理员
*/
@Data
public class ContainerBindRecordDetailExcelVO {
@ExcelProperty("id")
private Long id;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("主表ID")
private Long masterId;
@ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
private String batch;
@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("计量单位")
private String uom;
@ExcelProperty("接口类型")
private String interfaceType;
@ExcelProperty("代码")
private String code;
@ExcelProperty("地点ID")
private String siteId;
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@ExcelProperty("备注")
private String remark;
}

22
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordDetailExportReqVO.java

@ -0,0 +1,22 @@
package com.win.module.wms.controller.containerbindrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description = "管理后台 - 器具绑定记录子 Excel 导出 Request VO,参数和 ContainerBindRecordDetailPageReqVO 是一致的")
@Data
public class ContainerBindRecordDetailExportReqVO {
@Schema(description = "单据号")
private String number;
@Schema(description = "包装号")
private String packingNumber;
@Schema(description = "器具号")
private String containerNumber;
@Schema(description = "备注", example = "你说的对")
private String remark;
}

27
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordDetailPageReqVO.java

@ -0,0 +1,27 @@
package com.win.module.wms.controller.containerbindrecord.vo;
import com.win.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@Schema(description = "管理后台 - 器具绑定记录子分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ContainerBindRecordDetailPageReqVO extends PageParam {
@Schema(description = "单据号")
private String number;
@Schema(description = "包装号")
private String packingNumber;
@Schema(description = "器具号")
private String containerNumber;
@Schema(description = "备注", example = "你说的对")
private String remark;
}

22
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordDetailRespVO.java

@ -0,0 +1,22 @@
package com.win.module.wms.controller.containerbindrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 器具绑定记录子 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ContainerBindRecordDetailRespVO extends ContainerBindRecordDetailBaseVO {
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29158")
private Long id;
@Schema(description = "创建时间")
private LocalDateTime createTime;
}

20
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordDetailUpdateReqVO.java

@ -0,0 +1,20 @@
package com.win.module.wms.controller.containerbindrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - 器具绑定记录子更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ContainerBindRecordDetailUpdateReqVO extends ContainerBindRecordDetailBaseVO {
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29158")
@NotNull(message = "id不能为空")
private Long id;
}

84
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordMainBaseVO.java

@ -0,0 +1,84 @@
package com.win.module.wms.controller.containerbindrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* 器具绑定记录主 Base VO提供给添加修改详细的子 VO 使用
* 如果子 VO 存在差异的字段请不要添加到这里影响 Swagger 文档生成
*/
@Data
public class ContainerBindRecordMainBaseVO {
@Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "单据号不能为空")
private String number;
@Schema(description = "申请单号")
private String requestNumber;
@Schema(description = "器具号")
private String containerNumber;
@Schema(description = "从库位代码")
private String fromLocationCode;
@Schema(description = "绑定类型", example = "1")
private String bindType;
@Schema(description = "执行时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime executeTime;
@Schema(description = "生效日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime activeDate;
@Schema(description = "是否可用")
private String available;
@Schema(description = "申请时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime requestTime;
@Schema(description = "截止时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime dueTime;
@Schema(description = "业务类型", example = "1")
private String businessType;
@Schema(description = "接口类型", example = "2")
private String interfaceType;
@Schema(description = "出库事务类型", example = "2")
private String outTransactionType;
@Schema(description = "入库事务类型", example = "1")
private String inTransactionType;
@Schema(description = "扩展属性")
private String extraProperties;
@Schema(description = "地点ID", example = "12246")
private String siteId;
@Schema(description = "代码")
private String code;
@Schema(description = "用户组")
private String userGroupCode;
@Schema(description = "部门")
private String departmentCode;
@Schema(description = "备注", example = "你说的对")
private String remark;
}

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordMainCreateReqVO.java

@ -0,0 +1,14 @@
package com.win.module.wms.controller.containerbindrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@Schema(description = "管理后台 - 器具绑定记录主创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ContainerBindRecordMainCreateReqVO extends ContainerBindRecordMainBaseVO {
}

97
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordMainExcelVO.java

@ -0,0 +1,97 @@
package com.win.module.wms.controller.containerbindrecord.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 器具绑定记录主 Excel VO
*
* @author 超级管理员
*/
@Data
public class ContainerBindRecordMainExcelVO {
@ExcelProperty("id")
private Long id;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("申请单号")
private String requestNumber;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("从库位代码")
private String fromLocationCode;
@ExcelProperty("绑定类型")
private String bindType;
@ExcelProperty("执行时间")
private LocalDateTime executeTime;
@ExcelProperty("生效日期")
private LocalDateTime activeDate;
@ExcelProperty("是否可用")
private String available;
@ExcelProperty("申请时间")
private LocalDateTime requestTime;
@ExcelProperty("截止时间")
private LocalDateTime dueTime;
@ExcelProperty("业务类型")
private String businessType;
@ExcelProperty("接口类型")
private String interfaceType;
@ExcelProperty("出库事务类型")
private String outTransactionType;
@ExcelProperty("入库事务类型")
private String inTransactionType;
@ExcelProperty("扩展属性")
private String extraProperties;
@ExcelProperty("地点ID")
private String siteId;
@ExcelProperty("代码")
private String code;
@ExcelProperty("用户组")
private String userGroupCode;
@ExcelProperty("部门")
private String departmentCode;
@ExcelProperty("租户编号")
private Long tenantId;
@ExcelProperty("创建者Id")
private String creator;
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@ExcelProperty("最后更新者用户名")
private String updater;
@ExcelProperty("最后更新时间")
private LocalDateTime updateTime;
@ExcelProperty("是否删除")
private Boolean deleted;
@ExcelProperty("备注")
private String remark;
}

19
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordMainExportReqVO.java

@ -0,0 +1,19 @@
package com.win.module.wms.controller.containerbindrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description = "管理后台 - 器具绑定记录主 Excel 导出 Request VO,参数和 ContainerBindRecordMainPageReqVO 是一致的")
@Data
public class ContainerBindRecordMainExportReqVO {
@Schema(description = "单据号")
private String number;
@Schema(description = "器具号")
private String containerNumber;
@Schema(description = "备注", example = "你说的对")
private String remark;
}

24
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordMainPageReqVO.java

@ -0,0 +1,24 @@
package com.win.module.wms.controller.containerbindrecord.vo;
import com.win.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@Schema(description = "管理后台 - 器具绑定记录主分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ContainerBindRecordMainPageReqVO extends PageParam {
@Schema(description = "单据号")
private String number;
@Schema(description = "器具号")
private String containerNumber;
@Schema(description = "备注", example = "你说的对")
private String remark;
}

37
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordMainRespVO.java

@ -0,0 +1,37 @@
package com.win.module.wms.controller.containerbindrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 器具绑定记录主 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ContainerBindRecordMainRespVO extends ContainerBindRecordMainBaseVO {
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "25654")
private Long id;
@Schema(description = "租户编号", example = "622")
private Long tenantId;
@Schema(description = "创建者Id")
private String creator;
@Schema(description = "创建时间")
private LocalDateTime createTime;
@Schema(description = "最后更新者用户名")
private String updater;
@Schema(description = "最后更新时间")
private LocalDateTime updateTime;
@Schema(description = "是否删除")
private Boolean deleted;
}

20
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/containerbindrecord/vo/ContainerBindRecordMainUpdateReqVO.java

@ -0,0 +1,20 @@
package com.win.module.wms.controller.containerbindrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - 器具绑定记录主更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ContainerBindRecordMainUpdateReqVO extends ContainerBindRecordMainBaseVO {
@Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "25654")
@NotNull(message = "id不能为空")
private Long id;
}

23
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/RuleController.java

@ -3,19 +3,13 @@ package com.win.module.wms.controller.rule;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.itembasic.vo.ItembasicExcelVO;
import com.win.module.wms.controller.itembasic.vo.ItembasicExportReqVO;
import com.win.module.wms.controller.rule.vo.*;
import com.win.module.wms.convert.itembasic.ItembasicConvert;
import com.win.module.wms.convert.rule.RuleConvert;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.rule.RuleDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.rule.RuleService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -27,7 +21,6 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
@ -80,6 +73,7 @@ public class RuleController {
RuleDO rule = ruleService.getRule(id);
return success(RuleConvert.INSTANCE.convert(rule));
}
@PostMapping("/senior")
@Operation(summary = "高级搜索获得物品基本信息分页")
@PreAuthorize("@ss.hasPermission('wms:rule:query')")
@ -109,17 +103,26 @@ public class RuleController {
List<HashMap<String, Object>> list = ruleService.getPrecisionStrategyByItemCodes(reqVO);
return success(list);
}
@PostMapping("/getPrecisionStrategy")
@Operation(summary = "根据零件号和库位号查询管理精度策略")
@PreAuthorize("@ss.hasPermission('wms:rule:query')")
public CommonResult<Object> getPrecisionStrategy(@Valid @RequestBody List<PrecisionStrategyReqVO2> reqVO2List) {
List<HashMap<String, Object>> list = ruleService.getPrecisionStrategy(reqVO2List);
return success(list);
}
@GetMapping("/export-excel")
@Operation(summary = "导出规则配置 Excel")
@PreAuthorize("@ss.hasPermission('wms:rule:export')")
@OperateLog(type = EXPORT)
public void exportRuleExcel(@Valid RuleExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
public void exportRuleExcel(@Valid RuleExportReqVO exportReqVO, HttpServletResponse response) throws IOException {
List<RuleDO> list =ruleService.getRuleList(exportReqVO);
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<RuleExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "物品基本信息.xlsx", "数据", RuleExcelVO.class, resultList, mapDropDown);
}
@PostMapping("/export-excel-senior")
@Operation(summary = "导出规则配置 Excel")
@PreAuthorize("@ss.hasPermission('wms:rule:export')")
@ -130,8 +133,8 @@ public class RuleController {
List<RuleExcelVO> resultList = this.getExcelVo(list, mapDropDown);
ExcelUtils.write(response, "物品基本信息.xlsx", "数据", RuleExcelVO.class, resultList, mapDropDown);
}
private List<RuleExcelVO> getExcelVo(List<RuleDO> list, Map<Integer, String[]> mapDropDown) {
private List<RuleExcelVO> getExcelVo(List<RuleDO> list, Map<Integer, String[]> mapDropDown) {
// 导出 Excel
List<RuleExcelVO> resultList = RuleConvert.INSTANCE.convertList02(list);
for(RuleExcelVO vo : resultList) {

19
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/vo/PrecisionStrategyReqVO2.java

@ -0,0 +1,19 @@
package com.win.module.wms.controller.rule.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Schema(description = "APP管理精度策略")
@Data
public class PrecisionStrategyReqVO2 {
@Schema(description = "物品代码")
@NotBlank(message = "物品代码不能为空")
private String itemCode;
@Schema(description = "库位代码")
@NotBlank(message = "库位代码不能为空")
private String locationCode;
}

38
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/containerbindrecord/ContainerBindRecordDetailConvert.java

@ -0,0 +1,38 @@
package com.win.module.wms.convert.containerbindrecord;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.containerbindrecord.vo.ContainerBindRecordDetailCreateReqVO;
import com.win.module.wms.controller.containerbindrecord.vo.ContainerBindRecordDetailExcelVO;
import com.win.module.wms.controller.containerbindrecord.vo.ContainerBindRecordDetailRespVO;
import com.win.module.wms.controller.containerbindrecord.vo.ContainerBindRecordDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.containerbindrecord.ContainerBindRecordDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
* 器具绑定记录子 Convert
*
* @author 超级管理员
*/
@Mapper
public interface ContainerBindRecordDetailConvert {
ContainerBindRecordDetailConvert INSTANCE = Mappers.getMapper(ContainerBindRecordDetailConvert.class);
ContainerBindRecordDetailDO convert(ContainerBindRecordDetailCreateReqVO bean);
ContainerBindRecordDetailDO convert(ContainerBindRecordDetailUpdateReqVO bean);
ContainerBindRecordDetailRespVO convert(ContainerBindRecordDetailDO bean);
List<ContainerBindRecordDetailRespVO> convertList(List<ContainerBindRecordDetailDO> list);
PageResult<ContainerBindRecordDetailRespVO> convertPage(PageResult<ContainerBindRecordDetailDO> page);
List<ContainerBindRecordDetailExcelVO> convertList02(List<ContainerBindRecordDetailDO> list);
}

37
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/containerbindrecord/ContainerBindRecordMainConvert.java

@ -0,0 +1,37 @@
package com.win.module.wms.convert.containerbindrecord;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.containerbindrecord.vo.ContainerBindRecordMainCreateReqVO;
import com.win.module.wms.controller.containerbindrecord.vo.ContainerBindRecordMainExcelVO;
import com.win.module.wms.controller.containerbindrecord.vo.ContainerBindRecordMainRespVO;
import com.win.module.wms.controller.containerbindrecord.vo.ContainerBindRecordMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.containerbindrecord.ContainerBindRecordMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
* 器具绑定记录主 Convert
*
* @author 超级管理员
*/
@Mapper
public interface ContainerBindRecordMainConvert {
ContainerBindRecordMainConvert INSTANCE = Mappers.getMapper(ContainerBindRecordMainConvert.class);
ContainerBindRecordMainDO convert(ContainerBindRecordMainCreateReqVO bean);
ContainerBindRecordMainDO convert(ContainerBindRecordMainUpdateReqVO bean);
ContainerBindRecordMainRespVO convert(ContainerBindRecordMainDO bean);
List<ContainerBindRecordMainRespVO> convertList(List<ContainerBindRecordMainDO> list);
PageResult<ContainerBindRecordMainRespVO> convertPage(PageResult<ContainerBindRecordMainDO> page);
List<ContainerBindRecordMainExcelVO> convertList02(List<ContainerBindRecordMainDO> list);
}

94
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/containerbindrecord/ContainerBindRecordDetailDO.java

@ -0,0 +1,94 @@
package com.win.module.wms.dal.dataobject.containerbindrecord;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.win.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;
import java.math.BigDecimal;
/**
* 器具绑定记录子 DO
*
* @author 超级管理员
*/
@TableName("record_container_bind_detail")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ContainerBindRecordDetailDO extends BaseDO {
/**
* id
*/
@TableId
private Long id;
/**
* 单据号
*/
private String number;
/**
* 主表ID
*/
private Long masterId;
/**
* 包装号
*/
private String packingNumber;
/**
* 器具号
*/
private String containerNumber;
/**
* 批次
*/
private String batch;
/**
* 物品代码
*/
private String itemCode;
/**
* 物品名称
*/
private String itemName;
/**
* 物品描述1
*/
private String itemDesc1;
/**
* 物品描述2
*/
private String itemDesc2;
/**
* 项目代码
*/
private String projectCode;
/**
* 数量
*/
private BigDecimal qty;
/**
* 计量单位
*/
private String uom;
/**
* 接口类型
*/
private String interfaceType;
/**
* 代码
*/
private String code;
/**
* 地点ID
*/
private String siteId;
/**
* 备注
*/
private String remark;
}

110
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/containerbindrecord/ContainerBindRecordMainDO.java

@ -0,0 +1,110 @@
package com.win.module.wms.dal.dataobject.containerbindrecord;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.win.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;
import java.time.LocalDateTime;
/**
* 器具绑定记录主 DO
*
* @author 超级管理员
*/
@TableName("record_container_bind_main")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ContainerBindRecordMainDO extends BaseDO {
/**
* id
*/
@TableId
private Long id;
/**
* 单据号
*/
private String number;
/**
* 申请单号
*/
private String requestNumber;
/**
* 器具号
*/
private String containerNumber;
/**
* 从库位代码
*/
private String fromLocationCode;
/**
* 绑定类型
*/
private String bindType;
/**
* 执行时间
*/
private LocalDateTime executeTime;
/**
* 生效日期
*/
private LocalDateTime activeDate;
/**
* 是否可用
*/
private String available;
/**
* 申请时间
*/
private LocalDateTime requestTime;
/**
* 截止时间
*/
private LocalDateTime dueTime;
/**
* 业务类型
*/
private String businessType;
/**
* 接口类型
*/
private String interfaceType;
/**
* 出库事务类型
*/
private String outTransactionType;
/**
* 入库事务类型
*/
private String inTransactionType;
/**
* 扩展属性
*/
private String extraProperties;
/**
* 地点ID
*/
private String siteId;
/**
* 代码
*/
private String code;
/**
* 用户组
*/
private String userGroupCode;
/**
* 部门
*/
private String departmentCode;
/**
* 备注
*/
private String remark;
}

39
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerbindrecord/ContainerBindRecordDetailMapper.java

@ -0,0 +1,39 @@
package com.win.module.wms.dal.mysql.containerbindrecord;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.module.wms.controller.containerbindrecord.vo.ContainerBindRecordDetailExportReqVO;
import com.win.module.wms.controller.containerbindrecord.vo.ContainerBindRecordDetailPageReqVO;
import com.win.module.wms.dal.dataobject.containerbindrecord.ContainerBindRecordDetailDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 器具绑定记录子 Mapper
*
* @author 超级管理员
*/
@Mapper
public interface ContainerBindRecordDetailMapper extends BaseMapperX<ContainerBindRecordDetailDO> {
default PageResult<ContainerBindRecordDetailDO> selectPage(ContainerBindRecordDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ContainerBindRecordDetailDO>()
.eqIfPresent(ContainerBindRecordDetailDO::getNumber, reqVO.getNumber())
.eqIfPresent(ContainerBindRecordDetailDO::getPackingNumber, reqVO.getPackingNumber())
.eqIfPresent(ContainerBindRecordDetailDO::getContainerNumber, reqVO.getContainerNumber())
.eqIfPresent(ContainerBindRecordDetailDO::getRemark, reqVO.getRemark())
.orderByDesc(ContainerBindRecordDetailDO::getId));
}
default List<ContainerBindRecordDetailDO> selectList(ContainerBindRecordDetailExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<ContainerBindRecordDetailDO>()
.eqIfPresent(ContainerBindRecordDetailDO::getNumber, reqVO.getNumber())
.eqIfPresent(ContainerBindRecordDetailDO::getPackingNumber, reqVO.getPackingNumber())
.eqIfPresent(ContainerBindRecordDetailDO::getContainerNumber, reqVO.getContainerNumber())
.eqIfPresent(ContainerBindRecordDetailDO::getRemark, reqVO.getRemark())
.orderByDesc(ContainerBindRecordDetailDO::getId));
}
}

37
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerbindrecord/ContainerBindRecordMainMapper.java

@ -0,0 +1,37 @@
package com.win.module.wms.dal.mysql.containerbindrecord;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.module.wms.controller.containerbindrecord.vo.ContainerBindRecordMainExportReqVO;
import com.win.module.wms.controller.containerbindrecord.vo.ContainerBindRecordMainPageReqVO;
import com.win.module.wms.dal.dataobject.containerbindrecord.ContainerBindRecordMainDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 器具绑定记录主 Mapper
*
* @author 超级管理员
*/
@Mapper
public interface ContainerBindRecordMainMapper extends BaseMapperX<ContainerBindRecordMainDO> {
default PageResult<ContainerBindRecordMainDO> selectPage(ContainerBindRecordMainPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ContainerBindRecordMainDO>()
.eqIfPresent(ContainerBindRecordMainDO::getNumber, reqVO.getNumber())
.eqIfPresent(ContainerBindRecordMainDO::getContainerNumber, reqVO.getContainerNumber())
.eqIfPresent(ContainerBindRecordMainDO::getRemark, reqVO.getRemark())
.orderByDesc(ContainerBindRecordMainDO::getId));
}
default List<ContainerBindRecordMainDO> selectList(ContainerBindRecordMainExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<ContainerBindRecordMainDO>()
.eqIfPresent(ContainerBindRecordMainDO::getNumber, reqVO.getNumber())
.eqIfPresent(ContainerBindRecordMainDO::getContainerNumber, reqVO.getContainerNumber())
.eqIfPresent(ContainerBindRecordMainDO::getRemark, reqVO.getRemark())
.orderByDesc(ContainerBindRecordMainDO::getId));
}
}

81
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/containerbindrecord/ContainerBindRecordDetailService.java

@ -0,0 +1,81 @@
package com.win.module.wms.service.containerbindrecord;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.containerbindrecord.vo.*;
import com.win.module.wms.dal.dataobject.containerbindrecord.ContainerBindRecordDetailDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/**
* 器具绑定记录子 Service 接口
*
* @author 超级管理员
*/
public interface ContainerBindRecordDetailService {
/**
* 创建器具绑定记录子
*
* @param createReqVO 创建信息
* @return 编号
*/
Long createContainerBindRecordDetail(@Valid ContainerBindRecordDetailCreateReqVO createReqVO);
/**
* 更新器具绑定记录子
*
* @param updateReqVO 更新信息
*/
Integer updateContainerBindRecordDetail(@Valid ContainerBindRecordDetailUpdateReqVO updateReqVO);
/**
* 删除器具绑定记录子
*
* @param id 编号
*/
Integer deleteContainerBindRecordDetail(Long id);
/**
* 获得器具绑定记录子
*
* @param id 编号
* @return 器具绑定记录子
*/
ContainerBindRecordDetailDO getContainerBindRecordDetail(Long id);
/**
* 获得器具绑定记录子列表
*
* @param ids 编号
* @return 器具绑定记录子列表
*/
List<ContainerBindRecordDetailDO> getContainerBindRecordDetailList(Collection<Long> ids);
/**
* 获得器具绑定记录子分页
*
* @param pageReqVO 分页查询
* @return 器具绑定记录子分页
*/
PageResult<ContainerBindRecordDetailDO> getContainerBindRecordDetailPage(ContainerBindRecordDetailPageReqVO pageReqVO);
/**
* 获得器具绑定记录子列表, 用于 Excel 导出
*
* @param exportReqVO 查询条件
* @return 器具绑定记录子列表
*/
List<ContainerBindRecordDetailDO> getContainerBindRecordDetailList(ContainerBindRecordDetailExportReqVO exportReqVO);
/**
* 导入器具绑定记录子主信息
*
* @param datas 导入器具绑定记录子主信息列表
* @param mode 导入模式1更新2追加3覆盖
* @param updatePart 是否支持更新
* @return 导入结果
*/
public List<ContainerBindRecordDetailExcelVO> importContainerBindRecordDetailList(List<ContainerBindRecordDetailExcelVO> datas, Integer mode, boolean updatePart);
}

109
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/containerbindrecord/ContainerBindRecordDetailServiceImpl.java

@ -0,0 +1,109 @@
package com.win.module.wms.service.containerbindrecord;
import cn.hutool.core.collection.CollUtil;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.containerbindrecord.vo.*;
import com.win.module.wms.convert.containerbindrecord.ContainerBindRecordDetailConvert;
import com.win.module.wms.dal.dataobject.containerbindrecord.ContainerBindRecordDetailDO;
import com.win.module.wms.dal.mysql.containerbindrecord.ContainerBindRecordDetailMapper;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.CONTAINER_BIND_RECORD_DETAIL_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.ErrorCodeConstants.CONTAINER_BIND_RECORD_DETAIL_NOT_EXISTS;
/**
* 器具绑定记录子 Service 实现类
*
* @author 超级管理员
*/
@Service
@Validated
public class ContainerBindRecordDetailServiceImpl implements ContainerBindRecordDetailService {
@Resource
private ContainerBindRecordDetailMapper containerBindRecordDetailMapper;
@Override
public Long createContainerBindRecordDetail(ContainerBindRecordDetailCreateReqVO createReqVO) {
// 插入
ContainerBindRecordDetailDO containerBindRecordDetail = ContainerBindRecordDetailConvert.INSTANCE.convert(createReqVO);
containerBindRecordDetailMapper.insert(containerBindRecordDetail);
// 返回
return containerBindRecordDetail.getId();
}
@Override
public Integer updateContainerBindRecordDetail(ContainerBindRecordDetailUpdateReqVO updateReqVO) {
// 校验存在
validateContainerBindRecordDetailExists(updateReqVO.getId());
// 更新
ContainerBindRecordDetailDO updateObj = ContainerBindRecordDetailConvert.INSTANCE.convert(updateReqVO);
return containerBindRecordDetailMapper.updateById(updateObj);
}
@Override
public Integer deleteContainerBindRecordDetail(Long id) {
// 校验存在
validateContainerBindRecordDetailExists(id);
// 删除
return containerBindRecordDetailMapper.deleteById(id);
}
private void validateContainerBindRecordDetailExists(Long id) {
if (containerBindRecordDetailMapper.selectById(id) == null) {
throw exception(CONTAINER_BIND_RECORD_DETAIL_NOT_EXISTS);
}
}
@Override
public ContainerBindRecordDetailDO getContainerBindRecordDetail(Long id) {
return containerBindRecordDetailMapper.selectById(id);
}
@Override
public List<ContainerBindRecordDetailDO> getContainerBindRecordDetailList(Collection<Long> ids) {
return containerBindRecordDetailMapper.selectBatchIds(ids);
}
@Override
public PageResult<ContainerBindRecordDetailDO> getContainerBindRecordDetailPage(ContainerBindRecordDetailPageReqVO pageReqVO) {
return containerBindRecordDetailMapper.selectPage(pageReqVO);
}
@Override
public List<ContainerBindRecordDetailDO> getContainerBindRecordDetailList(ContainerBindRecordDetailExportReqVO exportReqVO) {
return containerBindRecordDetailMapper.selectList(exportReqVO);
}
@Override
public List<ContainerBindRecordDetailExcelVO> importContainerBindRecordDetailList(List<ContainerBindRecordDetailExcelVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(CONTAINER_BIND_RECORD_DETAIL_IMPORT_LIST_IS_EMPTY);
}
List<ContainerBindRecordDetailExcelVO> errorList = new ArrayList<>();
// datas.forEach(item -> {
// if(errorList == null){
// // 判断如果不存在,在进行插入
// ContainerBindRecordDetailDO obj = containerBindRecordDetailMapper.selectByCode(item.getCode());
// if (obj == null&& mode != 3) {
// containerBindRecordDetailMapper.insert(ContainerBindRecordDetailConvert.INSTANCE.convert(item));
// }
// else if (obj != null && mode != 2) {// 如果存在,判断是否允许更新
// ContainerBindRecordDetailDO containerBindRecordDetailDO = ContainerBindRecordDetailConvert.INSTANCE.convert(item);
// containerBindRecordDetailDO.setId(obj.getId());
// containerBindRecordDetailMapper.updateById(obj);
// }
// }
// });
return errorList;
}
}

81
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/containerbindrecord/ContainerBindRecordMainService.java

@ -0,0 +1,81 @@
package com.win.module.wms.service.containerbindrecord;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.containerbindrecord.vo.*;
import com.win.module.wms.dal.dataobject.containerbindrecord.ContainerBindRecordMainDO;
import javax.validation.Valid;
import java.util.Collection;
import java.util.List;
/**
* 器具绑定记录主 Service 接口
*
* @author 超级管理员
*/
public interface ContainerBindRecordMainService {
/**
* 创建器具绑定记录主
*
* @param createReqVO 创建信息
* @return 编号
*/
Long createContainerBindRecordMain(@Valid ContainerBindRecordMainCreateReqVO createReqVO);
/**
* 更新器具绑定记录主
*
* @param updateReqVO 更新信息
*/
Integer updateContainerBindRecordMain(@Valid ContainerBindRecordMainUpdateReqVO updateReqVO);
/**
* 删除器具绑定记录主
*
* @param id 编号
*/
Integer deleteContainerBindRecordMain(Long id);
/**
* 获得器具绑定记录主
*
* @param id 编号
* @return 器具绑定记录主
*/
ContainerBindRecordMainDO getContainerBindRecordMain(Long id);
/**
* 获得器具绑定记录主列表
*
* @param ids 编号
* @return 器具绑定记录主列表
*/
List<ContainerBindRecordMainDO> getContainerBindRecordMainList(Collection<Long> ids);
/**
* 获得器具绑定记录主分页
*
* @param pageReqVO 分页查询
* @return 器具绑定记录主分页
*/
PageResult<ContainerBindRecordMainDO> getContainerBindRecordMainPage(ContainerBindRecordMainPageReqVO pageReqVO);
/**
* 获得器具绑定记录主列表, 用于 Excel 导出
*
* @param exportReqVO 查询条件
* @return 器具绑定记录主列表
*/
List<ContainerBindRecordMainDO> getContainerBindRecordMainList(ContainerBindRecordMainExportReqVO exportReqVO);
/**
* 导入器具绑定记录主主信息
*
* @param datas 导入器具绑定记录主主信息列表
* @param mode 导入模式1更新2追加3覆盖
* @param updatePart 是否支持更新
* @return 导入结果
*/
List<ContainerBindRecordMainExcelVO> importContainerBindRecordMainList(List<ContainerBindRecordMainExcelVO> datas, Integer mode, boolean updatePart);
}

109
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/containerbindrecord/ContainerBindRecordMainServiceImpl.java

@ -0,0 +1,109 @@
package com.win.module.wms.service.containerbindrecord;
import cn.hutool.core.collection.CollUtil;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.containerbindrecord.vo.*;
import com.win.module.wms.convert.containerbindrecord.ContainerBindRecordMainConvert;
import com.win.module.wms.dal.dataobject.containerbindrecord.ContainerBindRecordMainDO;
import com.win.module.wms.dal.mysql.containerbindrecord.ContainerBindRecordMainMapper;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.CONTAINER_BIND_RECORD_MAIN_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.ErrorCodeConstants.CONTAINER_BIND_RECORD_MAIN_NOT_EXISTS;
/**
* 器具绑定记录主 Service 实现类
*
* @author 超级管理员
*/
@Service
@Validated
public class ContainerBindRecordMainServiceImpl implements ContainerBindRecordMainService {
@Resource
private ContainerBindRecordMainMapper containerBindRecordMainMapper;
@Override
public Long createContainerBindRecordMain(ContainerBindRecordMainCreateReqVO createReqVO) {
// 插入
ContainerBindRecordMainDO containerBindRecordMain = ContainerBindRecordMainConvert.INSTANCE.convert(createReqVO);
containerBindRecordMainMapper.insert(containerBindRecordMain);
// 返回
return containerBindRecordMain.getId();
}
@Override
public Integer updateContainerBindRecordMain(ContainerBindRecordMainUpdateReqVO updateReqVO) {
// 校验存在
validateContainerBindRecordMainExists(updateReqVO.getId());
// 更新
ContainerBindRecordMainDO updateObj = ContainerBindRecordMainConvert.INSTANCE.convert(updateReqVO);
return containerBindRecordMainMapper.updateById(updateObj);
}
@Override
public Integer deleteContainerBindRecordMain(Long id) {
// 校验存在
validateContainerBindRecordMainExists(id);
// 删除
return containerBindRecordMainMapper.deleteById(id);
}
private void validateContainerBindRecordMainExists(Long id) {
if (containerBindRecordMainMapper.selectById(id) == null) {
throw exception(CONTAINER_BIND_RECORD_MAIN_NOT_EXISTS);
}
}
@Override
public ContainerBindRecordMainDO getContainerBindRecordMain(Long id) {
return containerBindRecordMainMapper.selectById(id);
}
@Override
public List<ContainerBindRecordMainDO> getContainerBindRecordMainList(Collection<Long> ids) {
return containerBindRecordMainMapper.selectBatchIds(ids);
}
@Override
public PageResult<ContainerBindRecordMainDO> getContainerBindRecordMainPage(ContainerBindRecordMainPageReqVO pageReqVO) {
return containerBindRecordMainMapper.selectPage(pageReqVO);
}
@Override
public List<ContainerBindRecordMainDO> getContainerBindRecordMainList(ContainerBindRecordMainExportReqVO exportReqVO) {
return containerBindRecordMainMapper.selectList(exportReqVO);
}
@Override
public List<ContainerBindRecordMainExcelVO> importContainerBindRecordMainList(List<ContainerBindRecordMainExcelVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(CONTAINER_BIND_RECORD_MAIN_IMPORT_LIST_IS_EMPTY);
}
List<ContainerBindRecordMainExcelVO> errorList = new ArrayList<>();
// datas.forEach(item -> {
// if(errorList == null){
// // 判断如果不存在,在进行插入
// ContainerBindRecordMainDO obj = containerBindRecordMainMapper.selectByCode(item.getCode());
// if (obj == null&& mode != 3) {
// containerBindRecordMainMapper.insert(ContainerBindRecordMainConvert.INSTANCE.convert(item));
// }
// else if (obj != null && mode != 2) {// 如果存在,判断是否允许更新
// ContainerBindRecordMainDO containerBindRecordMainDO = ContainerBindRecordMainConvert.INSTANCE.convert(item);
// containerBindRecordMainDO.setId(obj.getId());
// containerBindRecordMainMapper.updateById(obj);
// }
// }
// });
return errorList;
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java

@ -251,7 +251,7 @@ public class ProductdismantleRequestMainServiceImpl implements ProductdismantleR
// 校验--工位基础信息
if(StringUtils.isNotEmpty(detailDo.getWorkStationCode())){
WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDo.getWorkStationCode(), mainDO.getWorkshopCode(), detailDo.getProductionLineCode());
detailDo.setFromLocationCode(workstationDO.getRawLocationCode());
detailDo.setFromLocationCode(workstationDO.getFgLocationCode());
}
// 校验--库存余额 TB——>TB1
validateBalance(detailDo,mainDO);

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java

@ -133,11 +133,12 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
private TrendsApi trendsApi;
@Override
@Transactional
public Long createProductputawayRequestMain(ProductputawayRequestMainCreateReqVO createReqVO) {
ProductputawayRequestMainDO productputawayRequestMainDO = validatorToCreate(createReqVO);
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(productputawayRequestMainDO.getStatus())) {
this.generateJob(productputawayRequestMainDO, productputawayRequestDetailMapper.selectList(productputawayRequestMainDO.getId()));
}
trendsApi.createTrends(productputawayRequestMainDO.getId(), "ProductputawayRequest", "增加了制品上架申请", TrendsTypeEnum.CREATE);
return productputawayRequestMainDO.getId();

37
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.web.core.util.WebFrameworkUtils;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.serialnumber.SerialNumberApi;
@ -11,6 +12,9 @@ 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.issueJob.vo.IssueJobDetailUpdateReqVO;
import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailCreateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailCreateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO;
import com.win.module.wms.controller.productreceiptJob.vo.*;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.productreceiptJob.ProductreceiptJobMainConvert;
@ -46,6 +50,7 @@ import com.win.module.wms.dal.mysql.productreceiptRecord.BackflushRecordDetailbM
import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordDetailMapper;
import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordMainMapper;
import com.win.module.wms.enums.job.JobStatusState;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.backflushRequest.BackflushRequestDetailbService;
import com.win.module.wms.service.balance.BalanceService;
import com.win.module.wms.service.businesstype.BusinesstypeService;
@ -55,6 +60,7 @@ import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.offlinesettlementRecord.OfflinesettlementRecordMainService;
import com.win.module.wms.service.production.ProductionMainService;
import com.win.module.wms.service.productputawayRequest.ProductputawayRequestMainService;
import com.win.module.wms.service.productreceiptRequest.ProductreceiptRequestDetailService;
import com.win.module.wms.service.productreceiptRequest.ProductreceiptRequestMainService;
import com.win.module.wms.service.recordsetting.RecordsettingService;
@ -87,6 +93,8 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*;
@Validated
public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainService {
@Resource
private ProductputawayRequestMainService productputawayRequestMainService;
@Resource
private OfflinesettlementRecordDetailMapper offlinesettlementRecordDetailMapper;
@Resource
@ -399,12 +407,32 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
// 根据单据开关判断是否创建 制品上架申请
SwitchDO switchDO = switchService.selectSwitchExist("CreateProductputawayRequestAfterProductreceiptRecordCreated");
if (switchDO.getEffectiveSetValue().equals("TRUE")) {
// TODO: 创建 制品上架申请
generateProductputawayRequest(productreceiptRecordMainDO, productreceiptRecordDetailDOList);
}
return number;
}
/**
* 创建 制品上架申请
* @param productreceiptRecordMainDO
* @param productreceiptRecordDetailDOList
*/
private void generateProductputawayRequest(ProductreceiptRecordMainDO productreceiptRecordMainDO, List<ProductreceiptRecordDetailDO> productreceiptRecordDetailDOList) {
ProductputawayRequestMainCreateReqVO productputawayRequestMainCreateReqVO = new ProductputawayRequestMainCreateReqVO();
productputawayRequestMainCreateReqVO.setStatus(RequestStatusEnum.NEW.getCode());
productputawayRequestMainCreateReqVO.setDepartmentCode(String.valueOf(userApi.getUser(WebFrameworkUtils.getLoginUserId()).getDeptId()));
List<ProductputawayRequestDetailCreateReqVO> subList = new ArrayList<>();
productreceiptRecordDetailDOList.forEach(itemDetailDO -> {
ProductputawayRequestDetailCreateReqVO productputawayRequestDetailCreateReqVO = new ProductputawayRequestDetailCreateReqVO();
productputawayRequestDetailCreateReqVO.setItemCode(itemDetailDO.getItemCode());
productputawayRequestDetailCreateReqVO.setQty(itemDetailDO.getQty());
productputawayRequestDetailCreateReqVO.setInventoryStatus(itemDetailDO.getInventoryStatus());
subList.add(productputawayRequestDetailCreateReqVO);
});
productputawayRequestMainCreateReqVO.setSubList(subList);
productputawayRequestMainService.createProductputawayRequestMain(productputawayRequestMainCreateReqVO);
}
/**
* 创建 回冲记录
* @param productreceiptRecordMainDO
@ -437,6 +465,7 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
WorkstationDO workstationDO = workstationService.selectWorkstationExist(productreceiptRecordDetailDO.getWorkStationCode(),productreceiptRecordMainDO.getWorkshopCode(),productreceiptRecordDetailDO.getProductionlineCode());
backflushRecordDetailbDO.setFromLocationCode(workstationDO.getRawLocationCode());
// 根据 from_location_code 查询库存余额
// TODO: 如果按批次 查询批次获取库存余额 排序批次 如果第一条批次不够数量 需要扣除第二条余额 库存事务出的动作要存2条
List inventoryStatus = new ArrayList();
inventoryStatus.add("OK");
List<BalanceDO> balanceDOList = balanceService.selectNumber(backflushRequestDetailbDO.getItemCode(),inventoryStatus,workstationDO.getRawLocationCode());
@ -445,6 +474,9 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
backflushRecordDetailbDO.setInventoryStatus("OK");
backflushRecordDetailbDO.setFromAreaCode(balanceDOList.get(0).getAreaCode());
backflushRecordDetailbDO.setFromLocationGroupCode(balanceDOList.get(0).getLocationGroupCode());
// 消耗数量 = 成品数量 * bom数量
BigDecimal qty = productreceiptRecordDetailDO.getQty().multiply(backflushRecordDetailbDO.getQty());
backflushRecordDetailbDO.setQty(qty);
backflushRecordDetailbDOList.add(backflushRecordDetailbDO);
//添加库存事务list
// 出动作
@ -465,6 +497,7 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
transactionCreateReqVO.setAmount(BigDecimal.ZERO);
transactionCreateReqVO.setWarehouseCode("");
transactionCreateReqVO.setLocationCode(backflushRecordDetailbDO.getFromLocationCode());
transactionCreateReqVO.setQty(qty);
transactionCreateReqVOList.add(transactionCreateReqVO);
// 判断 物品 是否为 下线结算物品 创建 下线结算记录
if (itembasicService.isOfflines(backflushRecordDetailbDO.getItemCode())) {

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleService.java

@ -210,4 +210,11 @@ public interface RuleService {
*/
List<HashMap<String, Object>> getPrecisionStrategyByItemCodes(PrecisionStrategyReqVO reqVO);
/**
* 获取根据物品代码以及库位代码管理精度策略
*
* @param reqVO2List
* @return
*/
List<HashMap<String, Object>> getPrecisionStrategy(List<PrecisionStrategyReqVO2> reqVO2List);
}

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleServiceImpl.java

@ -513,6 +513,20 @@ public class RuleServiceImpl implements RuleService {
return list;
}
@Override
public List<HashMap<String, Object>> getPrecisionStrategy(List<PrecisionStrategyReqVO2> reqVO2List) {
List<HashMap<String, Object>> list = new ArrayList<>();
for (PrecisionStrategyReqVO2 reqVO2 : reqVO2List) {
HashMap<String, Object> map = new HashMap<>();
RuleRespVO RespVO = management(null, null, reqVO2.getItemCode(), reqVO2.getLocationCode(), null, null);
JSONObject entries = JSONUtil.parseObj(RespVO.getConfiguration());
map.put("ManagementPrecision", entries.get("ManagementPrecision"));
map.put("itemCode", reqVO2.getItemCode());
list.add(map);
}
return list;
}
/**
* 循环校验参数
*

12
win-module-wms/win-module-wms-biz/src/main/resources/mapper/containerbindrecord/ContainerBindRecordDetailMapper.xml

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.win.module.wms.dal.mysql.containerbindrecord.ContainerBindRecordDetailMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>

12
win-module-wms/win-module-wms-biz/src/main/resources/mapper/containerbindrecord/ContainerBindRecordMainMapper.xml

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.win.module.wms.dal.mysql.containerbindrecord.ContainerBindRecordMainMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>
Loading…
Cancel
Save