Browse Source

制品报废生新增接口调试完成

master
赵雪冰 2 years ago
parent
commit
84621fb661
  1. 11
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/ProductscrapRecordMainController.java
  3. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/ProductscrapRecordDetailBaseVO.java
  4. 37
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestDetailController.java
  5. 74
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java
  6. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestBomRespVO.java
  7. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailBaseVO.java
  8. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailCreateReqVO.java
  9. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailExportReqVO.java
  10. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailPageReqVO.java
  11. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainBaseVO.java
  12. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainCreateReqVO.java
  13. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRecord/RawscrapRecordDetailConvert.java
  14. 28
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestDetailConvert.java
  15. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRecord/ProductscrapRecordMainDO.java
  16. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestDetailDO.java
  17. 21
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestMainDO.java
  18. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRequest/ProductscrapRequestDetailMapper.java
  19. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRequest/RawscrapRequestDetailMapper.java
  20. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRequest/ProductrepairRequestMainServiceImpl.java
  21. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRecord/ProductscrapRecordMainService.java
  22. 36
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRecord/ProductscrapRecordMainServiceImpl.java
  23. 57
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainService.java
  24. 475
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java

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

@ -712,13 +712,14 @@ public interface ErrorCodeConstants {
//制品报废申请主ErrorCode //制品报废申请主ErrorCode
ErrorCode PRODUCTSCRAP_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_110_000, "制品报废申请主不存在"); ErrorCode PRODUCTSCRAP_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_110_000, "制品报废申请主不存在");
//制品报废申请子ErrorCode ErrorCode PRODUCTSCRAP_REQUEST_MAIN_STATUS_ERROR = new ErrorCode(1_000_110_001, "制品返修申请状态错误");
ErrorCode PRODUCTSCRAP_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_001_110_001, "制品报废申请子不存在"); //制品报废申请一级子表ErrorCode
// 制品报废二级子表ErrorCode ErrorCode PRODUCTSCRAP_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_001_110_101, "制品报废申请子不存在");
ErrorCode PRODUCTSCRAP_REQUEST_NOT_EXISTS = new ErrorCode(1_001_110_102, "制品报废申请不存在");
// 制品报废申请二级子表ErrorCode
ErrorCode RAWSCRAP_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_111_100, "制品报废子申请状态错误"); ErrorCode RAWSCRAP_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_111_100, "制品报废子申请状态错误");
ErrorCode RAWSCRAP_REQUEST_DETAIL_IMPORT_LIST_IS_EMPTY= new ErrorCode(1_000_111_101, "制品报废子申请导入列表是空"); ErrorCode RAWSCRAP_REQUEST_DETAIL_IMPORT_LIST_IS_EMPTY= new ErrorCode(1_000_111_101, "制品报废子申请导入列表是空");
//制品报废申请子ErrorCode
ErrorCode PRODUCTSCRAP_REQUEST_NOT_EXISTS = new ErrorCode(1_001_110_002, "制品报废申请不存在");
//制品报废任务主ErrorCode //制品报废任务主ErrorCode
ErrorCode PRODUCTSCRAP_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_111_000, "制品报废任务主不存在"); ErrorCode PRODUCTSCRAP_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_111_000, "制品报废任务主不存在");
//制品报废任务子ErrorCode //制品报废任务子ErrorCode

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/ProductscrapRecordMainController.java

@ -3,6 +3,8 @@ package com.win.module.wms.controller.productscrapRecord;
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.controller.productrepairRecord.vo.ConsumeRecordDetailbPageReqVO;
import com.win.module.wms.controller.productrepairRecord.vo.ConsumeRecordDetailbRespVO;
import com.win.module.wms.controller.productscrapRecord.vo.*; import com.win.module.wms.controller.productscrapRecord.vo.*;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -49,6 +51,7 @@ public class ProductscrapRecordMainController {
public CommonResult<String> createProductscrapRecordMain(@Valid @RequestBody ProductscrapRecordMainCreateReqVO createReqVO) { public CommonResult<String> createProductscrapRecordMain(@Valid @RequestBody ProductscrapRecordMainCreateReqVO createReqVO) {
return success(productscrapRecordMainService.createProductscrapRecordMain(createReqVO)); return success(productscrapRecordMainService.createProductscrapRecordMain(createReqVO));
} }
@PostMapping("/senior") @PostMapping("/senior")
@Operation(summary = "高级搜索获得物品基本信息分页") @Operation(summary = "高级搜索获得物品基本信息分页")
@PreAuthorize("@ss.hasPermission('wms:ProductscrapRecordMain:query')") @PreAuthorize("@ss.hasPermission('wms:ProductscrapRecordMain:query')")
@ -62,6 +65,7 @@ public class ProductscrapRecordMainController {
} }
return success(result); return success(result);
} }
@PutMapping("/update") @PutMapping("/update")
@Operation(summary = "更新制品报废记录主") @Operation(summary = "更新制品报废记录主")
@PreAuthorize("@ss.hasPermission('wms:productscrap-record-main:update')") @PreAuthorize("@ss.hasPermission('wms:productscrap-record-main:update')")
@ -122,4 +126,12 @@ public class ProductscrapRecordMainController {
ExcelUtils.write(response, "制品报废记录主.xls", "数据", ProductscrapRecordMainExcelVO.class, datas); ExcelUtils.write(response, "制品报废记录主.xls", "数据", ProductscrapRecordMainExcelVO.class, datas);
} }
@GetMapping("/bomPage")
@Operation(summary = "获取BOM接口")
@PreAuthorize("@ss.hasPermission('wms:productscrap-record-main:query')")
public CommonResult<PageResult<RawscrapRecordDetailRespVO>> getBomInfoPage(RawscrapRecordDetailPageReqVO pageVO) {
PageResult<RawscrapRecordDetailRespVO> pageResult = productscrapRecordMainService.getBomInfoPage(pageVO);
return success(pageResult);
}
} }

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/ProductscrapRecordDetailBaseVO.java

@ -98,4 +98,7 @@ public class ProductscrapRecordDetailBaseVO {
@Schema(description = "任务明细ID") @Schema(description = "任务明细ID")
private String jobDetailId; private String jobDetailId;
@Schema(description = "主键ID")
private Long masterId;
} }

37
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestDetailController.java

@ -1,28 +1,32 @@
package com.win.module.wms.controller.productscrapRequest; package com.win.module.wms.controller.productscrapRequest;
import com.win.framework.common.pojo.CommonResult;
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.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.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.productscrapRequest.vo.*; import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestDetailConvert;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO;
import com.win.module.wms.service.productscrapRequest.ProductscrapRequestDetailService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import javax.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize; import javax.validation.Valid;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException; import java.io.IOException;
import com.win.framework.common.pojo.PageResult; import java.util.Collection;
import com.win.framework.common.pojo.CommonResult; import java.util.List;
import static com.win.framework.common.pojo.CommonResult.success; import static com.win.framework.common.pojo.CommonResult.success;
import com.win.framework.excel.core.util.ExcelUtils; import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
import com.win.framework.operatelog.core.annotations.OperateLog;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestDetailConvert;
import com.win.module.wms.service.productscrapRequest.ProductscrapRequestDetailService;
@Tag(name = "管理后台 - 制品报废申请子") @Tag(name = "管理后台 - 制品报废申请子")
@RestController @RestController
@ -85,6 +89,7 @@ public class ProductscrapRequestDetailController {
PageResult<ProductscrapRequestDetailDO> pageResult = productscrapRequestDetailService.getProductscrapRequestDetailPage(pageVO); PageResult<ProductscrapRequestDetailDO> pageResult = productscrapRequestDetailService.getProductscrapRequestDetailPage(pageVO);
return success(ProductscrapRequestDetailConvert.INSTANCE.convertPage(pageResult)); return success(ProductscrapRequestDetailConvert.INSTANCE.convertPage(pageResult));
} }
@PostMapping("/senior") @PostMapping("/senior")
@Operation(summary = "高级搜索获得物品基本信息分页") @Operation(summary = "高级搜索获得物品基本信息分页")
@PreAuthorize("@ss.hasPermission('wms:productscrap-request-detail:query')") @PreAuthorize("@ss.hasPermission('wms:productscrap-request-detail:query')")

74
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java

@ -2,21 +2,21 @@ package com.win.module.wms.controller.productscrapRequest;
import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CommonResult;
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.dict.core.util.DictFrameworkUtils; 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.common.pojo.PageResult;
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.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.productscrapRequest.vo.*; import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.enums.DictTypeConstants;
import io.swagger.v3.oas.annotations.Parameters;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert; import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.productscrapRequest.ProductscrapRequestMainService; import com.win.module.wms.service.productscrapRequest.ProductscrapRequestMainService;
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;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -24,17 +24,15 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*; import java.util.*;
import static com.win.framework.common.pojo.CommonResult.success; import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
import static com.win.module.wms.enums.DictTypeConstants.INVENTORY_STATUS;
@Tag(name = "管理后台 - 制品报废申请主") @Tag(name = "管理后台 - 制品报废申请主")
@RestController @RestController
@ -165,4 +163,66 @@ public class ProductscrapRequestMainController {
return success(returnMap); return success(returnMap);
} }
@PutMapping("/close")
@Operation(summary = "关闭")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:productscrap-request-main:close')")
public CommonResult<Boolean> closeProductscrapRequestMain(@RequestParam("id") Long id) {
Integer count = productscrapRequestMainService.closeProductscrapRequestMain(id);
return success(count > 0);
}
@PutMapping("/reAdd")
@Operation(summary = "重新添加")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:productscrap-request-main:reAdd')")
public CommonResult<Boolean> reAddeProductscrapRequestMain(@RequestParam("id") Long id) {
Integer count = productscrapRequestMainService.reAddeProductscrapRequestMain(id);
return success(count > 0);
}
@PutMapping("/submit")
@Operation(summary = "提交审批")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:productscrap-request-main:submit')")
public CommonResult<Boolean> submitProductscrapRequestMain(@RequestParam("id") Long id) {
Integer count = productscrapRequestMainService.submitProductscrapRequestMain(id);
return success(count > 0);
}
@PutMapping("/refused")
@Operation(summary = "驳回")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:productscrap-request-main:refused')")
public CommonResult<Boolean> refusedProductscrapRequestMain(@RequestParam("id") Long id) {
Integer count = productscrapRequestMainService.refusedProductscrapRequestMain(id);
return success(count > 0);
}
@PutMapping("/agree")
@Operation(summary = "审批通过")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:productscrap-request-main:agree')")
public CommonResult<Boolean> agreeProductscrapRequestMain(@RequestParam("id") Long id) {
Integer count = productscrapRequestMainService.agreeProductscrapRequestMain(id);
return success(count > 0);
}
@PutMapping("/handle")
@Operation(summary = "处理")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:productscrap-request-main:handle')")
public CommonResult<Boolean> handleProductscrapRequestMain(@RequestParam("id") Long id) {
Integer count = productscrapRequestMainService.handleProductscrapRequestMain(id);
return success(count > 0);
}
@GetMapping("/bomPage")
@Operation(summary = "获取BOM接口")
@PreAuthorize("@ss.hasPermission('wms:productscrap-request-main:query')")
public CommonResult<PageResult<ProductscrapRequestBomRespVO>> getBomInfoPage(ProductscrapRequestDetailPageReqVO pageVO) {
PageResult<ProductscrapRequestBomRespVO> pageResult = productscrapRequestMainService.getBomInfoPage(pageVO);
return success(pageResult);
}
} }

19
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestBomRespVO.java

@ -0,0 +1,19 @@
package com.win.module.wms.controller.productscrapRequest.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 制品返修二级子表 Response VO")
@Data
@ToString(callSuper = true)
public class ProductscrapRequestBomRespVO extends RawscrapRequestDetailBaseVO {
private String itemCode;
private String uom;
private BigDecimal qty;
private String version;
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailBaseVO.java

@ -89,4 +89,12 @@ public class ProductscrapRequestDetailBaseVO {
@Schema(description = "最后更新者用户名") @Schema(description = "最后更新者用户名")
private String updater; private String updater;
@Schema(description = "生产线代码")
private String productionLineCode;
@Schema(description = "工位代码")
private String workStationCode;
@Schema(description = "工序代码")
private String processCode;
} }

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailCreateReqVO.java

@ -1,12 +1,20 @@
package com.win.module.wms.controller.productscrapRequest.vo; package com.win.module.wms.controller.productscrapRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailbCreateReqVO;
import lombok.*; import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
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 ProductscrapRequestDetailCreateReqVO extends ProductscrapRequestDetailBaseVO { public class ProductscrapRequestDetailCreateReqVO extends ProductscrapRequestDetailBaseVO {
@SubObject
@Schema(description = "二级子表数据")
private List<RawscrapRequestDetailCreateReqVO> childList;
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailExportReqVO.java

@ -77,4 +77,6 @@ public class ProductscrapRequestDetailExportReqVO {
@Schema(description = "最后更新者用户名") @Schema(description = "最后更新者用户名")
private String updater; private String updater;
@Schema(description = "主键ID")
private Long masterId;
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailPageReqVO.java

@ -79,4 +79,10 @@ public class ProductscrapRequestDetailPageReqVO extends PageParam {
@Schema(description = "最后更新者用户名") @Schema(description = "最后更新者用户名")
private String updater; private String updater;
@Schema(description = "主键ID")
private Long masterId;
@Schema(description = "bom版本")
private String bomVersion;
} }

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainBaseVO.java

@ -83,4 +83,15 @@ public class ProductscrapRequestMainBaseVO {
@NotNull(message = "直接生成记录不能为空") @NotNull(message = "直接生成记录不能为空")
private String directCreateRecord; private String directCreateRecord;
@Schema(description = "车间代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "车间代码不能为空")
private String workshopCode;
@Schema(description = "班组", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "班组不能为空")
private String team;
@Schema(description = "班次", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "班次不能为空")
private String shift;
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainCreateReqVO.java

@ -13,6 +13,6 @@ import java.util.List;
@ToString(callSuper = true) @ToString(callSuper = true)
public class ProductscrapRequestMainCreateReqVO extends ProductscrapRequestMainBaseVO { public class ProductscrapRequestMainCreateReqVO extends ProductscrapRequestMainBaseVO {
@SubObject @SubObject
@Schema(description = "子表数据") @Schema(description = "一级子表数据")
private List<ProductscrapRequestDetailCreateReqVO> subList; private List<ProductscrapRequestDetailCreateReqVO> subList;
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRecord/RawscrapRecordDetailConvert.java

@ -6,6 +6,7 @@ import com.win.module.wms.controller.productscrapRecord.vo.RawscrapRecordDetailE
import com.win.module.wms.controller.productscrapRecord.vo.RawscrapRecordDetailRespVO; import com.win.module.wms.controller.productscrapRecord.vo.RawscrapRecordDetailRespVO;
import com.win.module.wms.controller.productscrapRecord.vo.RawscrapRecordDetailUpdateReqVO; import com.win.module.wms.controller.productscrapRecord.vo.RawscrapRecordDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.productscrapRecord.RawscrapRecordDetailDO; import com.win.module.wms.dal.dataobject.productscrapRecord.RawscrapRecordDetailDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.RawscrapRequestDetailDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
@ -34,4 +35,5 @@ public interface RawscrapRecordDetailConvert {
List<RawscrapRecordDetailExcelVO> convertList02(List<RawscrapRecordDetailDO> list); List<RawscrapRecordDetailExcelVO> convertList02(List<RawscrapRecordDetailDO> list);
RawscrapRecordDetailDO convert(RawscrapRequestDetailDO rawscrapRequestDetailDO);
} }

28
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestDetailConvert.java

@ -1,18 +1,9 @@
package com.win.module.wms.convert.productscrapRequest; package com.win.module.wms.convert.productscrapRequest;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailUpdateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportErrorVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailCreateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.*; import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO; import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
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 java.util.List; import java.util.List;
@ -42,23 +33,6 @@ public interface ProductscrapRequestDetailConvert {
List<ProductscrapRequestDetailDO> convertList03(List<ProductscrapRequestDetailCreateReqVO> list); List<ProductscrapRequestDetailDO> convertList03(List<ProductscrapRequestDetailCreateReqVO> list);
List<ProductscrapRequestDetailDO> convertList05(List<ProductscrapRequestDetailUpdateReqVO> list); List<ProductscrapRequestDetailDO> convertList05(List<ProductscrapRequestDetailUpdateReqVO> list);
@Mappings({
@Mapping(source = "mainVo.number", target = "number")
})
ProductscrapRequestImportErrorVO convert(ProductscrapRequestMainCreateReqVO mainVo, ProductscrapRequestDetailDO detailVo);
ProductscrapRequestDetailCreateReqVO convert1(ProductscrapRequestDetailDO bean);
@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"),
})
ProductscrapRequestDetailExcelVO convert(ProductscrapRequestMainDO mainDO, ProductscrapRequestDetailDO detailDO);
ProductscrapRequestMainImportErrorVO convert(ProductscrapRequestMainCreateReqVO mainVo, ProductscrapRequestDetailCreateReqVO detailVo);
ProductscrapRequestBomRespVO convertRespVO(ProductscrapRequestDetailDO productscrapRequestDetailDO);
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRecord/ProductscrapRecordMainDO.java

@ -27,8 +27,8 @@ public class ProductscrapRecordMainDO extends BaseDO {
/** /**
* id * id
*/ */
@TableId(type = IdType.INPUT) @TableId
private String id; private Long id;
/** /**
* 申请单号 * 申请单号
*/ */

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestDetailDO.java

@ -115,5 +115,17 @@ public class ProductscrapRequestDetailDO extends BaseDO {
* 并发乐观锁 * 并发乐观锁
*/ */
private String concurrencyStamp; private String concurrencyStamp;
/**
* 生产线代码
*/
private String productionLineCode;
/**
* 工位代码
*/
private String workStationCode;
/**
* 工序代码
*/
private String processCode;
} }

21
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestMainDO.java

@ -121,5 +121,26 @@ public class ProductscrapRequestMainDO extends BaseDO {
*/ */
@NotBlank @NotBlank
private String directCreateRecord; private String directCreateRecord;
/**
* 入库库存状态范围
*/
private String inInventoryStatuses;
/**
* 出库库存状态范围
*/
private String outInventoryStatuses;
/**
* 车间代码
*/
private String workshopCode;
/**
* 班组
*/
private String team;
/**
* 班次
*/
private String shift;
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRequest/ProductscrapRequestDetailMapper.java

@ -42,6 +42,7 @@ public interface ProductscrapRequestDetailMapper extends BaseMapperX<Productscra
.eqIfPresent(ProductscrapRequestDetailDO::getUom, reqVO.getUom()) .eqIfPresent(ProductscrapRequestDetailDO::getUom, reqVO.getUom())
.betweenIfPresent(ProductscrapRequestDetailDO::getUpdateTime, reqVO.getUpdateTime()) .betweenIfPresent(ProductscrapRequestDetailDO::getUpdateTime, reqVO.getUpdateTime())
.eqIfPresent(ProductscrapRequestDetailDO::getUpdater, reqVO.getUpdater()) .eqIfPresent(ProductscrapRequestDetailDO::getUpdater, reqVO.getUpdater())
.eqIfPresent(ProductscrapRequestDetailDO::getMasterId, reqVO.getMasterId())
.orderByDesc(ProductscrapRequestDetailDO::getId)); .orderByDesc(ProductscrapRequestDetailDO::getId));
} }
default PageResult<ProductscrapRequestDetailDO> selectSenior(CustomConditions conditions) { default PageResult<ProductscrapRequestDetailDO> selectSenior(CustomConditions conditions) {
@ -69,7 +70,12 @@ public interface ProductscrapRequestDetailMapper extends BaseMapperX<Productscra
.eqIfPresent(ProductscrapRequestDetailDO::getUom, reqVO.getUom()) .eqIfPresent(ProductscrapRequestDetailDO::getUom, reqVO.getUom())
.betweenIfPresent(ProductscrapRequestDetailDO::getUpdateTime, reqVO.getUpdateTime()) .betweenIfPresent(ProductscrapRequestDetailDO::getUpdateTime, reqVO.getUpdateTime())
.eqIfPresent(ProductscrapRequestDetailDO::getUpdater, reqVO.getUpdater()) .eqIfPresent(ProductscrapRequestDetailDO::getUpdater, reqVO.getUpdater())
.eqIfPresent(ProductscrapRequestDetailDO::getMasterId, reqVO.getMasterId())
.orderByDesc(ProductscrapRequestDetailDO::getId)); .orderByDesc(ProductscrapRequestDetailDO::getId));
} }
default List<ProductscrapRequestDetailDO> selectList(Long masterId){
return selectList(new LambdaQueryWrapperX<ProductscrapRequestDetailDO>()
.eqIfPresent(ProductscrapRequestDetailDO::getMasterId,masterId));
}
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRequest/RawscrapRequestDetailMapper.java

@ -63,4 +63,8 @@ public interface RawscrapRequestDetailMapper extends BaseMapperX<RawscrapRequest
.orderByDesc(RawscrapRequestDetailDO::getId)); .orderByDesc(RawscrapRequestDetailDO::getId));
} }
default List<RawscrapRequestDetailDO> selectList(Long masterId){
return selectList(new LambdaQueryWrapperX<RawscrapRequestDetailDO>()
.eqIfPresent(RawscrapRequestDetailDO::getMasterId,masterId));
};
} }

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRequest/ProductrepairRequestMainServiceImpl.java

@ -10,22 +10,17 @@ 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.serialnumber.SerialNumberApi; import com.win.module.system.api.serialnumber.SerialNumberApi;
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.enums.serialNumber.RuleCodeEnum; import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.productrepairRecord.vo.ProductrepairRecordDetailCreateReqVO; import com.win.module.wms.controller.productrepairRecord.vo.ProductrepairRecordDetailCreateReqVO;
import com.win.module.wms.controller.productrepairRecord.vo.ProductrepairRecordMainCreateReqVO; import com.win.module.wms.controller.productrepairRecord.vo.ProductrepairRecordMainCreateReqVO;
import com.win.module.wms.controller.productrepairRequest.vo.*; import com.win.module.wms.controller.productrepairRequest.vo.*;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailCreateReqVO;
import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainImportErrorVO;
import com.win.module.wms.convert.productrepairRecord.ConsumeRecordDetailbConvert; import com.win.module.wms.convert.productrepairRecord.ConsumeRecordDetailbConvert;
import com.win.module.wms.convert.productrepairRecord.ProductrepairRecordDetailConvert; import com.win.module.wms.convert.productrepairRecord.ProductrepairRecordDetailConvert;
import com.win.module.wms.convert.productrepairRecord.ProductrepairRecordMainConvert; import com.win.module.wms.convert.productrepairRecord.ProductrepairRecordMainConvert;
import com.win.module.wms.convert.productrepairRequest.ProductrepairRequestDetailaConvert; import com.win.module.wms.convert.productrepairRequest.ProductrepairRequestDetailaConvert;
import com.win.module.wms.convert.productrepairRequest.ProductrepairRequestDetailbConvert; import com.win.module.wms.convert.productrepairRequest.ProductrepairRequestDetailbConvert;
import com.win.module.wms.convert.productrepairRequest.ProductrepairRequestMainConvert; import com.win.module.wms.convert.productrepairRequest.ProductrepairRequestMainConvert;
import com.win.module.wms.convert.transferissueRequest.TransferissueRequestDetailConvert;
import com.win.module.wms.convert.transferissueRequest.TransferissueRequestMainConvert;
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.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
@ -40,8 +35,6 @@ import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.shift.ShiftDO; import com.win.module.wms.dal.dataobject.shift.ShiftDO;
import com.win.module.wms.dal.dataobject.team.TeamDO; import com.win.module.wms.dal.dataobject.team.TeamDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO;
import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO; import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import com.win.module.wms.dal.mysql.productrepairRecord.ConsumeRecordDetailbMapper; import com.win.module.wms.dal.mysql.productrepairRecord.ConsumeRecordDetailbMapper;
import com.win.module.wms.dal.mysql.productrepairRecord.ProductrepairRecordDetailMapper; import com.win.module.wms.dal.mysql.productrepairRecord.ProductrepairRecordDetailMapper;
@ -144,7 +137,7 @@ public class ProductrepairRequestMainServiceImpl implements ProductrepairRequest
ProductrepairRecordMainCreateReqVO productrepairRecordMainCreateReqVO = new ProductrepairRecordMainCreateReqVO(); ProductrepairRecordMainCreateReqVO productrepairRecordMainCreateReqVO = new ProductrepairRecordMainCreateReqVO();
BeanUtils.copyProperties(mainDO, productrepairRecordMainCreateReqVO); BeanUtils.copyProperties(mainDO, productrepairRecordMainCreateReqVO);
productrepairRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); productrepairRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber());
String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_RECEIPT_RECORD.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_REPAIR_RECORD.getCode());
productrepairRecordMainCreateReqVO.setNumber(number); productrepairRecordMainCreateReqVO.setNumber(number);
//增加业务类型 //增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductRepairRecord"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductRepairRecord");

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRecord/ProductscrapRecordMainService.java

@ -4,10 +4,7 @@ import java.util.*;
import javax.validation.*; import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.productscrapRecord.vo.ProductscrapRecordMainCreateReqVO; import com.win.module.wms.controller.productscrapRecord.vo.*;
import com.win.module.wms.controller.productscrapRecord.vo.ProductscrapRecordMainExportReqVO;
import com.win.module.wms.controller.productscrapRecord.vo.ProductscrapRecordMainPageReqVO;
import com.win.module.wms.controller.productscrapRecord.vo.ProductscrapRecordMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.productscrapRecord.ProductscrapRecordMainDO; import com.win.module.wms.dal.dataobject.productscrapRecord.ProductscrapRecordMainDO;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
@ -80,4 +77,10 @@ public interface ProductscrapRecordMainService {
*/ */
List<ProductscrapRecordMainDO> getProductscrapRecordMainList(ProductscrapRecordMainExportReqVO exportReqVO); List<ProductscrapRecordMainDO> getProductscrapRecordMainList(ProductscrapRecordMainExportReqVO exportReqVO);
/**
* bom分页记录
* @param pageVO bom请求数据
* @return 分页返回数据
*/
PageResult<RawscrapRecordDetailRespVO> getBomInfoPage(RawscrapRecordDetailPageReqVO pageVO);
} }

36
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRecord/ProductscrapRecordMainServiceImpl.java

@ -1,24 +1,23 @@
package com.win.module.wms.service.productscrapRecord; package com.win.module.wms.service.productscrapRecord;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.productscrapRecord.vo.ProductscrapRecordMainCreateReqVO;
import com.win.module.wms.controller.productscrapRecord.vo.ProductscrapRecordMainExportReqVO;
import com.win.module.wms.controller.productscrapRecord.vo.ProductscrapRecordMainPageReqVO;
import com.win.module.wms.controller.productscrapRecord.vo.ProductscrapRecordMainUpdateReqVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import com.win.module.wms.dal.dataobject.productscrapRecord.ProductscrapRecordMainDO;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productscrapRecord.vo.*;
import com.win.module.wms.convert.productscrapRecord.ProductscrapRecordMainConvert; import com.win.module.wms.convert.productscrapRecord.ProductscrapRecordMainConvert;
import com.win.module.wms.convert.productscrapRecord.RawscrapRecordDetailConvert;
import com.win.module.wms.dal.dataobject.productscrapRecord.ProductscrapRecordMainDO;
import com.win.module.wms.dal.dataobject.productscrapRecord.RawscrapRecordDetailDO;
import com.win.module.wms.dal.mysql.productscrapRecord.ProductscrapRecordMainMapper; import com.win.module.wms.dal.mysql.productscrapRecord.ProductscrapRecordMainMapper;
import com.win.module.wms.dal.mysql.productscrapRecord.RawscrapRecordDetailMapper;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.*; import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTSCRAP_RECORD_MAIN_NOT_EXISTS;
/** /**
* 制品报废记录主 Service 实现类 * 制品报废记录主 Service 实现类
@ -31,6 +30,8 @@ public class ProductscrapRecordMainServiceImpl implements ProductscrapRecordMain
@Resource @Resource
private ProductscrapRecordMainMapper productscrapRecordMainMapper; private ProductscrapRecordMainMapper productscrapRecordMainMapper;
@Resource
private RawscrapRecordDetailMapper rawscrapRecordDetailMapper;
@Override @Override
public String createProductscrapRecordMain(ProductscrapRecordMainCreateReqVO createReqVO) { public String createProductscrapRecordMain(ProductscrapRecordMainCreateReqVO createReqVO) {
@ -38,7 +39,7 @@ public class ProductscrapRecordMainServiceImpl implements ProductscrapRecordMain
ProductscrapRecordMainDO productscrapRecordMain = ProductscrapRecordMainConvert.INSTANCE.convert(createReqVO); ProductscrapRecordMainDO productscrapRecordMain = ProductscrapRecordMainConvert.INSTANCE.convert(createReqVO);
productscrapRecordMainMapper.insert(productscrapRecordMain); productscrapRecordMainMapper.insert(productscrapRecordMain);
// 返回 // 返回
return productscrapRecordMain.getId(); return String.valueOf(productscrapRecordMain.getId());
} }
@Override @Override
@ -87,4 +88,11 @@ public class ProductscrapRecordMainServiceImpl implements ProductscrapRecordMain
return productscrapRecordMainMapper.selectList(exportReqVO); return productscrapRecordMainMapper.selectList(exportReqVO);
} }
@Override
public PageResult<RawscrapRecordDetailRespVO> getBomInfoPage(RawscrapRecordDetailPageReqVO pageVO) {
PageResult<RawscrapRecordDetailDO> pageResult = rawscrapRecordDetailMapper.selectPage(pageVO);
PageResult<RawscrapRecordDetailRespVO> page = RawscrapRecordDetailConvert.INSTANCE.convertPage(pageResult);
return page;
}
} }

57
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainService.java

@ -1,13 +1,6 @@
package com.win.module.wms.service.productscrapRequest; package com.win.module.wms.service.productscrapRequest;
import java.util.*;
import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestImportErrorVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainCreateReqVO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productscrapRequest.vo.*; import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
@ -93,6 +86,54 @@ public interface ProductscrapRequestMainService {
* @param updatePart 是否支持更新 * @param updatePart 是否支持更新
* @return 导入结果 * @return 导入结果
*/ */
public List<ProductscrapRequestImportErrorVO> importProductscrapRequestList(List<ProductscrapRequestMainCreateReqVO> datas, Integer mode, boolean updatePart); List<ProductscrapRequestImportErrorVO> importProductscrapRequestList(List<ProductscrapRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
/**
* 关闭
* @param id 主键ID
* @return 更新数量
*/
Integer closeProductscrapRequestMain(Long id);
/**
* 重新添加
* @param id 主键ID
* @return 更新数量
*/
Integer reAddeProductscrapRequestMain(Long id);
/**
* 提交审批
* @param id 主键ID
* @return 更新数量
*/
Integer submitProductscrapRequestMain(Long id);
/**
* 驳回
* @param id 主键ID
* @return 更新数量
*/
Integer refusedProductscrapRequestMain(Long id);
/**
* 申请通过
* @param id 主键ID
* @return 更新数量
*/
Integer agreeProductscrapRequestMain(Long id);
/**
* 处理
* @param id 主键ID
* @return 更新数量
*/
Integer handleProductscrapRequestMain(Long id);
/**
* 获取Bom分页数据
* @param pageVO 请求参数
* @return 分页列表数据
*/
PageResult<ProductscrapRequestBomRespVO> getBomInfoPage(ProductscrapRequestDetailPageReqVO pageVO);
} }

475
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java

@ -1,46 +1,78 @@
package com.win.module.wms.service.productscrapRequest; package com.win.module.wms.service.productscrapRequest;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
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.util.validation.ValidationUtils;
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.framework.mybatis.core.util.MyBatisUtils;
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.dict.DictDataApi; import com.win.module.system.api.dict.DictDataApi;
import com.win.module.system.api.dict.dto.DictDataRespDTO; import com.win.module.system.api.dict.dto.DictDataRespDTO;
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.productscrapRecord.vo.ProductscrapRecordDetailCreateReqVO;
import com.win.module.wms.controller.productscrapRecord.vo.ProductscrapRecordMainCreateReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.*; import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.productscrapRecord.ProductscrapRecordDetailConvert;
import com.win.module.wms.convert.productscrapRecord.ProductscrapRecordMainConvert;
import com.win.module.wms.convert.productscrapRecord.RawscrapRecordDetailConvert;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestDetailConvert; import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestDetailConvert;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert; import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert;
import com.win.module.wms.convert.productscrapRequest.RawscrapRequestDetailConvert;
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.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO;
import com.win.module.wms.dal.dataobject.productscrapRecord.ProductscrapRecordDetailDO;
import com.win.module.wms.dal.dataobject.productscrapRecord.ProductscrapRecordMainDO;
import com.win.module.wms.dal.dataobject.productscrapRecord.RawscrapRecordDetailDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO; import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.RawscrapRequestDetailDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.shift.ShiftDO;
import com.win.module.wms.dal.dataobject.team.TeamDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import com.win.module.wms.dal.mysql.productscrapRecord.ProductscrapRecordDetailMapper;
import com.win.module.wms.dal.mysql.productscrapRecord.ProductscrapRecordMainMapper;
import com.win.module.wms.dal.mysql.productscrapRecord.RawscrapRecordDetailMapper;
import com.win.module.wms.dal.mysql.productscrapRequest.ProductscrapRequestDetailMapper; import com.win.module.wms.dal.mysql.productscrapRequest.ProductscrapRequestDetailMapper;
import com.win.module.wms.dal.mysql.productscrapRequest.ProductscrapRequestMainMapper; import com.win.module.wms.dal.mysql.productscrapRequest.ProductscrapRequestMainMapper;
import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.dal.mysql.productscrapRequest.RawscrapRequestDetailMapper;
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.itembasic.ItembasicService; import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.productionline.ProductionlineService;
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.team.TeamService;
import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.service.workshop.WorkshopService;
import com.win.module.wms.service.workstation.WorkstationService;
import com.win.module.wms.util.JobUtils; import com.win.module.wms.util.JobUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
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 javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Validator; import javax.validation.Validator;
import java.util.ArrayList; import java.math.BigDecimal;
import java.util.Arrays; import java.time.LocalDateTime;
import java.util.Collection; import java.util.*;
import java.util.List; import java.util.stream.Collectors;
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.*;
/** /**
@ -54,87 +86,245 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
@Resource @Resource
private ProductscrapRequestMainMapper productscrapRequestMainMapper; private ProductscrapRequestMainMapper productscrapRequestMainMapper;
@Resource @Resource
private Validator validator; private Validator validator;
@Resource @Resource
private ProductscrapRequestDetailMapper productscrapRequestDetailMapper; private ProductscrapRequestDetailMapper productscrapRequestDetailMapper;
@Resource @Resource
private SerialNumberApi serialNumberApi; private SerialNumberApi serialNumberApi;
@Resource @Resource
private DictDataApi dictDataApi; private DictDataApi dictDataApi;
@Resource @Resource
private JobUtils jobUtils; private JobUtils jobUtils;
@Resource @Resource
private TrendsApi trendsApi; private TrendsApi trendsApi;
@Resource @Resource
private ItembasicService itembasicService; private ItembasicService itembasicService;
@Resource @Resource
private RequestsettingService requestsettingService; private RequestsettingService requestsettingService;
@Resource
private RawscrapRequestDetailMapper rawscrapRequestDetailMapper;
@Resource
private RecordsettingService recordsettingService;
@Resource
private ProductscrapRecordMainMapper productscrapRecordMainMapper;
@Resource
private ProductscrapRecordDetailMapper productscrapRecordDetailMapper;
@Resource
private RawscrapRecordDetailMapper rawscrapRecordDetailMapper;
@Resource
private AdminUserApi userApi;
@Resource
private TransactionService transactionService;
@Resource
private WorkshopService workshopService;
@Resource
private TeamService teamService;
@Resource
private ShiftService shiftService;
@Resource
private ProductionlineService productionlineService;
@Resource
private WorkstationService workstationService;
@Override @Override
public Long createProductscrapRequestMain(ProductscrapRequestMainCreateReqVO createReqVO) { public Long createProductscrapRequestMain(ProductscrapRequestMainCreateReqVO createReqVO) {
// 调用:Setting——>QReqS(ProductScrapRequest)
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductScrapRequest"); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductScrapRequest");
ProductscrapRequestMainDO productscrapRequestMainDO = validatorToCreate(createReqVO); ProductscrapRequestMainDO productscrapRequestMainDO = validatorToCreate(createReqVO,requestsettingDO);
//调用自动执行方法 //调用自动执行方法
if (RequestStatusEnum.HANDLING.getCode().equals(productscrapRequestMainDO.getStatus())) { if (RequestStatusEnum.HANDLING.getCode().equals(productscrapRequestMainDO.getStatus())) {
List<ProductscrapRequestDetailDO> detailDOList = productscrapRequestDetailMapper.selectList(productscrapRequestMainDO.getId());
this.generateJob(productscrapRequestMainDO, detailDOList);
} }
trendsApi.createTrends(requestsettingDO.getId(), "ProductScrapRequest", "增加了制品报废申请", TrendsTypeEnum.CREATE); trendsApi.createTrends(productscrapRequestMainDO.getId(), "ProductScrapRequest", "增加了制品报废申请", TrendsTypeEnum.CREATE);
return productscrapRequestMainDO.getId(); return productscrapRequestMainDO.getId();
} }
private ProductscrapRequestMainDO validatorToCreate(ProductscrapRequestMainCreateReqVO createReqVO) { private void generateJob(ProductscrapRequestMainDO mainDO, List<ProductscrapRequestDetailDO> detailDOList) {
//跳过任务直接生成记录
if("TRUE".equals(mainDO.getDirectCreateRecord())) {
ProductscrapRecordMainCreateReqVO productscrapRecordMainCreateReqVO = new ProductscrapRecordMainCreateReqVO();
BeanUtils.copyProperties(mainDO, productscrapRecordMainCreateReqVO);
productscrapRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber());
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_SCRAP_RECORD.getCode());
productscrapRecordMainCreateReqVO.setNumber(number);
//增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRecord");
productscrapRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode());
productscrapRecordMainCreateReqVO.setOutTransactionType(businesstypeDO.getOutTransactionType());
productscrapRecordMainCreateReqVO.setInTransactionType(businesstypeDO.getInTransactionType());
String interFaceType = recordsettingService.selectRecordsettingExist("ProductScrapRecord").getInterfaceType();
productscrapRecordMainCreateReqVO.setInterfaceType(interFaceType);
productscrapRecordMainCreateReqVO.setExecuteTime(LocalDateTime.now());
productscrapRecordMainCreateReqVO.setActiveDate(LocalDateTime.now());
productscrapRecordMainCreateReqVO.setAvailable("TRUE");
productscrapRecordMainCreateReqVO.setDueTime(mainDO.getDueTime());
productscrapRecordMainCreateReqVO.setId(null);
productscrapRecordMainCreateReqVO.setCreator(null);
productscrapRecordMainCreateReqVO.setCreateTime(null);
ProductscrapRecordMainDO productscrapRecordMainDO = ProductscrapRecordMainConvert.INSTANCE.convert(productscrapRecordMainCreateReqVO);
productscrapRecordMainMapper.insert(productscrapRecordMainDO);
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for(ProductscrapRequestDetailDO productscrapRequestDetailDO : detailDOList) {
ProductscrapRecordDetailCreateReqVO productscrapRecordDetailCreateReqVO = new ProductscrapRecordDetailCreateReqVO();
BeanUtils.copyProperties(productscrapRequestDetailDO, productscrapRecordDetailCreateReqVO);
productscrapRecordDetailCreateReqVO.setNumber(number);
productscrapRecordDetailCreateReqVO.setMasterId(productscrapRecordMainDO.getId());
productscrapRecordDetailCreateReqVO.setInventoryStatus(productscrapRequestDetailDO.getInventoryStatus());
ProductscrapRecordDetailDO productscrapRecordDetailDO = ProductscrapRecordDetailConvert.INSTANCE.convert(productscrapRecordDetailCreateReqVO);
productscrapRecordDetailMapper.insert(productscrapRecordDetailDO);
// 查询二级子表数据
List<RawscrapRequestDetailDO> rawscrapRequestDetailDOList = rawscrapRequestDetailMapper.selectList(productscrapRequestDetailDO.getId());
for(RawscrapRequestDetailDO rawscrapRequestDetailDO:rawscrapRequestDetailDOList){
RawscrapRecordDetailDO rawscrapRecordDetailDO = RawscrapRecordDetailConvert.INSTANCE.convert(rawscrapRequestDetailDO);
rawscrapRecordDetailDO.setMasterId(productscrapRecordDetailDO.getId());
rawscrapRecordDetailMapper.insert(rawscrapRecordDetailDO);
}
//添加库存事务list
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(productscrapRecordDetailDO, transactionCreateReqVO);
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType());
transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVO.setBusinessType(productscrapRecordMainDO.getBusinessType());
transactionCreateReqVO.setOwnerCode(productscrapRecordDetailDO.getFromOwnerCode());
transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setId(null);
transactionCreateReqVO.setPackingNumber("");
transactionCreateReqVO.setBatch("");
transactionCreateReqVO.setInventoryStatus("");
transactionCreateReqVO.setContainerNumber(productscrapRecordDetailDO.getContainerNumber());
transactionCreateReqVO.setAmount(BigDecimal.ZERO);
transactionCreateReqVO.setWarehouseCode(productscrapRecordMainDO.getFromWarehouseCode());
transactionCreateReqVO.setLocationCode(productscrapRecordDetailDO.getFromLocationCode());
transactionCreateReqVOList.add(transactionCreateReqVO);
}
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
}
}
private ProductscrapRequestMainDO validatorToCreate(ProductscrapRequestMainCreateReqVO createReqVO,RequestsettingDO requestsettingDO) {
// DBT——>DBT3("ProductScrapRequest")
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest");
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductScrapRequest"); // 主表信息
ProductscrapRequestMainDO productscrapRequestMainDO = validateMainMethod(createReqVO, businesstypeDO, requestsettingDO); ProductscrapRequestMainDO mainBo = validateMainMethod(createReqVO, businesstypeDO, requestsettingDO);
//子表校验 // 子表校验
List<ProductscrapRequestDetailCreateReqVO> subList = createReqVO.getSubList(); List<ProductscrapRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<ProductscrapRequestDetailDO> subDOList = ProductscrapRequestDetailConvert.INSTANCE.convertList03(subList); for(ProductscrapRequestDetailCreateReqVO detailCreateReqVO:subList){
for (ProductscrapRequestDetailDO productscrapRequestDetailDO : subDOList) { validateDetailMethod(detailCreateReqVO, businesstypeDO,mainBo);
validateDetailMethod(productscrapRequestDetailDO, businesstypeDO, productscrapRequestMainDO); }
} String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_SCRAP_REQUEST.getCode());
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); mainBo.setNumber(number);
productscrapRequestMainDO.setNumber(number); productscrapRequestMainMapper.insert(mainBo);
productscrapRequestMainMapper.insert(productscrapRequestMainDO); for (ProductscrapRequestDetailCreateReqVO detailCreateReqVO : subList) {
for (ProductscrapRequestDetailDO productscrapRequestDetailDO : subDOList) { ProductscrapRequestDetailDO detailDO = ProductscrapRequestDetailConvert.INSTANCE.convert(detailCreateReqVO);
productscrapRequestDetailDO.setMasterId(productscrapRequestMainDO.getId()); detailDO.setMasterId(mainBo.getId());
productscrapRequestDetailDO.setNumber(productscrapRequestMainDO.getNumber()); detailDO.setNumber(mainBo.getNumber());
} productscrapRequestDetailMapper.insert(detailDO);
productscrapRequestDetailMapper.insertBatch(subDOList); List<RawscrapRequestDetailCreateReqVO> requestDetailCreateReqVOList = detailCreateReqVO.getChildList();
return productscrapRequestMainDO; List<RawscrapRequestDetailDO> childList = new ArrayList<>();
for(RawscrapRequestDetailCreateReqVO rawscrapRequestDetailCreateReqVO:requestDetailCreateReqVOList){
RawscrapRequestDetailDO rawscrapRequestDetailDO = RawscrapRequestDetailConvert.INSTANCE.convert(rawscrapRequestDetailCreateReqVO);
rawscrapRequestDetailDO.setMasterId(detailDO.getId());
rawscrapRequestDetailDO.setNumber(detailDO.getNumber());
// 校验--二级子表数据
validateDetailbBom(rawscrapRequestDetailDO,detailDO,mainBo);
rawscrapRequestDetailDO.setId(null);
childList.add(rawscrapRequestDetailDO);
}
rawscrapRequestDetailMapper.insertBatch(childList);
}
return mainBo;
}
private void validateDetailbBom(RawscrapRequestDetailDO rawscrapRequestDetailDO, ProductscrapRequestDetailDO detailDO, ProductscrapRequestMainDO mainBo) {
// 校验--物品基本信息
ItembasicDO itembasicDO = itembasicService.selectItembasic(rawscrapRequestDetailDO.getItemCode());
// 赋值物品Item相关信息
rawscrapRequestDetailDO.setItemDesc1(itembasicDO.getDesc1());
rawscrapRequestDetailDO.setItemDesc2(itembasicDO.getDesc2());
rawscrapRequestDetailDO.setItemName(itembasicDO.getName());
rawscrapRequestDetailDO.setProjectCode(itembasicDO.getProject());
// 校验库存余额
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add("OK"); // 查询合格的边料库存余额
List<BalanceDO> list = jobUtils.selectlocationReturnManagementAccuracy(rawscrapRequestDetailDO.getItemCode(),null,null,detailDO.getFromLocationCode(),inventoryStatus);
BalanceDO balanceDO = list.get(0); // 去第一条库存余额
rawscrapRequestDetailDO.setInventoryStatus(balanceDO.getInventoryStatus());
rawscrapRequestDetailDO.setBatch(balanceDO.getBatch());
rawscrapRequestDetailDO.setPackingNumber(balanceDO.getPackingNumber());
rawscrapRequestDetailDO.setFromLocationCode(balanceDO.getLocationCode());
rawscrapRequestDetailDO.setCreateTime(LocalDateTime.now());
rawscrapRequestDetailDO.setCreator(null);
} }
private void validateDetailMethod(ProductscrapRequestDetailDO productscrapRequestDetailDO, BusinesstypeDO businesstypeDO, ProductscrapRequestMainDO productscrapRequestMainDO) { private void validateDetailMethod(ProductscrapRequestDetailBaseVO detailCreateReqVO, BusinesstypeDO businesstypeDO, ProductscrapRequestMainDO productscrapRequestMainDO) {
ItembasicDO itembasic = validatorItembasic(productscrapRequestDetailDO.getItemCode()); // 校验--生产线基本信息
productscrapRequestDetailDO.setItemDesc1(itembasic.getDesc1()); ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailCreateReqVO.getProductionLineCode());
productscrapRequestDetailDO.setItemDesc2(itembasic.getDesc2()); detailCreateReqVO.setFromLocationCode(productionlineDO.getRawLocationCode());
productscrapRequestDetailDO.setItemName(itembasic.getName()); // 校验--物品基本信息 BQ——>QI
productscrapRequestDetailDO.setProjectCode(itembasic.getProject()); ItembasicDO itembasic = validatorItembasic(detailCreateReqVO.getItemCode());
Isuom(productscrapRequestDetailDO.getUom(), itembasic.getUom()); detailCreateReqVO.setItemDesc1(itembasic.getDesc1());
jobUtils.selectItembasicExist(itembasic.getCode(), businesstypeDO); detailCreateReqVO.setItemDesc2(itembasic.getDesc2());
jobUtils.ifInToLocationType(productscrapRequestDetailDO.getFromLocationCode(), businesstypeDO); detailCreateReqVO.setItemName(itembasic.getName());
jobUtils.ifOutInventoryStatuses(productscrapRequestDetailDO.getInventoryStatus(), businesstypeDO); detailCreateReqVO.setProjectCode(itembasic.getProject());
List<String> business = validatorbusinessbasic(productscrapRequestDetailDO.getInventoryStatus()); detailCreateReqVO.setUom(itembasic.getUom());
List<BalanceDO> balance = validatorbalance(productscrapRequestDetailDO.getItemCode(), productscrapRequestDetailDO.getPackingNumber(), // 校验--工位基础信息
productscrapRequestDetailDO.getBatch(), productscrapRequestDetailDO.getFromLocationCode(), business); if(StringUtils.isNotEmpty(detailCreateReqVO.getWorkStationCode())){
BalanceDO blance1 = balance.get(0); WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailCreateReqVO.getWorkStationCode(), productscrapRequestMainDO.getWorkshopCode(), detailCreateReqVO.getProductionLineCode());
for(BalanceDO balance2 :balance) { detailCreateReqVO.setFromLocationCode(workstationDO.getRawLocationCode());
productscrapRequestMainDO.setFromWarehouseCode(balance2.getWarehouseCode());
productscrapRequestMainDO.setDueTime(balance2.getExpireDate());
} }
isqty(productscrapRequestDetailDO.getQty(), blance1.getQty()); // 校验--uom
// validatorUom(detailCreateReqVO.getUom(), itembasic.getUom());
// 校验--物品类型 DBT---DBT2---IT1
jobUtils.ifInType(itembasic.getType(), businesstypeDO);
// 校验--来源库位 DBT——>DBT2——>LO
jobUtils.ifInToLocationType(detailCreateReqVO.getFromLocationCode(), businesstypeDO);
// 校验--库存状态 DBT——>DBT2——>ISO
// jobUtils.ifOutInventoryStatuses(detailCreateReqVO.getInventoryStatus(), businesstypeDO);
// 校验--库存余额 TB——>TB1
// List<String> business = validatorbusinessbasic(detailCreateReqVO.getInventoryStatus());
// List<BalanceDO> balance = validatorbalance(detailCreateReqVO.getItemCode(), detailCreateReqVO.getPackingNumber(),detailCreateReqVO.getBatch(), detailCreateReqVO.getFromLocationCode(), business);
// BalanceDO balanceDO = balance.get(0);
// productscrapRequestMainDO.setFromWarehouseCode(balanceDO.getWarehouseCode());
// productscrapRequestMainDO.setDueTime(balanceDO.getExpireDate());
// detailCreateReqVO.setFromLocationCode(balanceDO.getLocationCode());
// // 校验 报废数量【qty】不能大于库存数量【banlance.qty】
// validatorQty(detailCreateReqVO.getQty(), balanceDO.getQty());
} }
private ProductscrapRequestMainDO validateMainMethod(ProductscrapRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) { private ProductscrapRequestMainDO validateMainMethod(ProductscrapRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
ProductscrapRequestMainDO productscrapRequestMainDO = ProductscrapRequestMainConvert.INSTANCE.convert(baseVO); ProductscrapRequestMainDO productscrapRequestMainDO = ProductscrapRequestMainConvert.INSTANCE.convert(baseVO);
productscrapRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(productscrapRequestMainDO.getAutoCommit(), productscrapRequestMainDO.getAutoAgree(), productscrapRequestMainDO.getAutoExecute());
productscrapRequestMainDO.setStatus(requestStatusState.getState().getCode());
// 校验--车间
workshopService.selectWorkshopExist(baseVO.getWorkshopCode());
// 校验--班组
if(StringUtils.isNotEmpty(baseVO.getTeam())){
TeamDO teamDO = teamService.selectTeamExist(baseVO.getTeam());
if(teamDO == null){
// 提示:班组【team】无效
throw exception(PRODUCTREPAIR_REQUEST_MAIN_TEAM_NOT_INVALID);
}
}
// 校验--班次
if(StringUtils.isNotEmpty(baseVO.getShift())){
ShiftDO shiftDO = shiftService.selectShiftExist(baseVO.getShift());
if(shiftDO == null){
// 提示:班次【shift】无效
throw exception(PRODUCTREPAIR_REQUEST_MAIN_SHIFT_NOT_INVALID);
}
}
// 校验--截止时间
validordurtime(baseVO.getDueTime());
productscrapRequestMainDO.setRequestTime(LocalDateTime.now()); productscrapRequestMainDO.setRequestTime(LocalDateTime.now());
productscrapRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); productscrapRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree());
productscrapRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); productscrapRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit());
@ -143,9 +333,17 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
productscrapRequestMainDO.setBusinessType(businesstypeDO.getCode()); productscrapRequestMainDO.setBusinessType(businesstypeDO.getCode());
productscrapRequestMainDO.setFromLocationTypes(businesstypeDO.getInLocationTypes()); productscrapRequestMainDO.setFromLocationTypes(businesstypeDO.getInLocationTypes());
productscrapRequestMainDO.setFromAreaCodes(businesstypeDO.getInAreaCodes()); productscrapRequestMainDO.setFromAreaCodes(businesstypeDO.getInAreaCodes());
productscrapRequestMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses());//入库库存状态范围
productscrapRequestMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses());//出库库存状态范围
return productscrapRequestMainDO; return productscrapRequestMainDO;
} }
private void validordurtime(LocalDateTime durtime){
if(!durtime.isAfter(LocalDateTime.now())){
throw exception(TIME_AFTER,LocalDateTime.now(),durtime);
}
}
@VisibleForTesting @VisibleForTesting
private void validateProductscrapExists(Long id) { private void validateProductscrapExists(Long id) {
if (id == null) { if (id == null) {
@ -159,26 +357,28 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
@Override @Override
public void updateProductscrapRequestMain(ProductscrapRequestMainUpdateReqVO updateReqVO) { public void updateProductscrapRequestMain(ProductscrapRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductPutawayRequest"); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductScrapRequest");
// 校验存在 // 校验存在
validateProductscrapRequestMainExists(updateReqVO.getId()); validateProductscrapRequestMainExists(updateReqVO.getId());
// 更新 // 更新
ProductscrapRequestMainDO productscrapRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); ProductscrapRequestMainDO productscrapRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
if(RequestStatusEnum.HANDLING.getCode().equals(productscrapRequestMainDO.getStatus())) { if(RequestStatusEnum.HANDLING.getCode().equals(productscrapRequestMainDO.getStatus())) {
List<ProductscrapRequestDetailDO> detailDOList = productscrapRequestDetailMapper.selectList(productscrapRequestMainDO.getId());
this.generateJob(productscrapRequestMainDO, detailDOList);
} }
trendsApi.createTrends(requestsettingDO.getId(), "ProductPutawayRequest", "增加了制品报废申请", TrendsTypeEnum.CREATE); trendsApi.createTrends(requestsettingDO.getId(), "ProductScrapRequest", "增加了制品报废申请", TrendsTypeEnum.CREATE);
} }
private ProductscrapRequestMainDO validatorToUpdate(ProductscrapRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { private ProductscrapRequestMainDO validatorToUpdate(ProductscrapRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest");
ProductscrapRequestMainDO productputawayRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); ProductscrapRequestMainDO productputawayRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO);
//子表校验 //子表校验
List<ProductscrapRequestDetailUpdateReqVO> subList = updateReqVO.getSubList(); List<ProductscrapRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
if(subList!=null) { if(subList!=null) {
List<ProductscrapRequestDetailDO> subDOList = ProductscrapRequestDetailConvert.INSTANCE.convertList05(subList); for (ProductscrapRequestDetailUpdateReqVO detailUpdateReqVO : subList) {
for (ProductscrapRequestDetailDO productscrapRequestDetailDO : subDOList) { validateDetailMethod(detailUpdateReqVO, businesstypeDO, productputawayRequestMainDO);
validateDetailMethod(productscrapRequestDetailDO, businesstypeDO, productputawayRequestMainDO);
} }
List<ProductscrapRequestDetailDO> subDOList = ProductscrapRequestDetailConvert.INSTANCE.convertList05(subList);
productscrapRequestDetailMapper.updateBatch(subDOList); productscrapRequestDetailMapper.updateBatch(subDOList);
} }
productscrapRequestMainMapper.updateById(productputawayRequestMainDO); productscrapRequestMainMapper.updateById(productputawayRequestMainDO);
@ -186,7 +386,6 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
} }
@Override @Override
public void deleteProductscrapRequestMain(Long id) { public void deleteProductscrapRequestMain(Long id) {
// 校验存在 // 校验存在
@ -200,10 +399,12 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
return productscrapRequestMainMapper.selectSenior(conditions); return productscrapRequestMainMapper.selectSenior(conditions);
} }
private void validateProductscrapRequestMainExists(Long id) { private ProductscrapRequestMainDO validateProductscrapRequestMainExists(Long id) {
if (productscrapRequestMainMapper.selectById(id) == null) { ProductscrapRequestMainDO productscrapRequestMainDO = productscrapRequestMainMapper.selectById(id);
if (productscrapRequestMainDO == null) {
throw exception(PRODUCTSCRAP_REQUEST_MAIN_NOT_EXISTS); throw exception(PRODUCTSCRAP_REQUEST_MAIN_NOT_EXISTS);
} }
return productscrapRequestMainDO;
} }
@Override @Override
@ -232,7 +433,6 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
} }
} }
private String validateProductscrapRequestMainImport(ProductscrapRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { private String validateProductscrapRequestMainImport(ProductscrapRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder(); StringBuilder message = new StringBuilder();
mainDo.setRequestTime(LocalDateTime.now()); mainDo.setRequestTime(LocalDateTime.now());
@ -261,7 +461,7 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
} }
public void Isuom(String uom1, String uom2) { public void validatorUom(String uom1, String uom2) {
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(uom1); DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(uom1);
String value = dictDataRespDTO.getLabel(); String value = dictDataRespDTO.getLabel();
DictDataRespDTO dictDataRespDTO1 = dictDataApi.selectDictValue(uom2); DictDataRespDTO dictDataRespDTO1 = dictDataApi.selectDictValue(uom2);
@ -271,7 +471,7 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
} }
} }
private String isqty(BigDecimal qty1, BigDecimal qty2) { private String validatorQty(BigDecimal qty1, BigDecimal qty2) {
if (qty1.compareTo(qty2) < 0) { if (qty1.compareTo(qty2) < 0) {
return "ture"; return "ture";
} else { } else {
@ -305,7 +505,7 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
detailDo.setItemName(itembasic.getName()); detailDo.setItemName(itembasic.getName());
detailDo.setProjectCode(itembasic.getProject()); detailDo.setProjectCode(itembasic.getProject());
try { try {
Isuom(detailDo.getUom(), itembasic.getUom()); validatorUom(detailDo.getUom(), itembasic.getUom());
} catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
@ -338,7 +538,7 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
mainDo.setDueTime(balance2.getExpireDate()); mainDo.setDueTime(balance2.getExpireDate());
} }
BalanceDO blance1 = balance.get(0); BalanceDO blance1 = balance.get(0);
isqty(detailDo.getQty(), blance1.getQty()); validatorQty(detailDo.getQty(), blance1.getQty());
} catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
@ -356,7 +556,6 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
return message.toString(); return message.toString();
} }
public List<ProductscrapRequestImportErrorVO> importProductscrapRequestList(List<ProductscrapRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) { public List<ProductscrapRequestImportErrorVO> importProductscrapRequestList(List<ProductscrapRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) { if (CollUtil.isEmpty(datas)) {
throw exception(PRODUCTSCRAP_REQUEST_MAIN_NOT_EXISTS); throw exception(PRODUCTSCRAP_REQUEST_MAIN_NOT_EXISTS);
@ -398,5 +597,139 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
}); });
return errorList; return errorList;
} }
@Transactional
@Override
public Integer closeProductscrapRequestMain(Long id) {
ProductscrapRequestMainDO mainDO = validateProductscrapRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.close();
if(!flag) {
throw new ServiceException(PRODUCTSCRAP_REQUEST_MAIN_STATUS_ERROR);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//增加操作记录
trendsApi.createTrends(id, "ProductScrapRequest", "关闭了制品报废申请", TrendsTypeEnum.UPDATE);
return productscrapRequestMainMapper.updateById(mainDO);
}
@Transactional
@Override
public Integer reAddeProductscrapRequestMain(Long id) {
ProductscrapRequestMainDO mainDO = validateProductscrapRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.reAdd();
if(!flag) {
throw new ServiceException(PRODUCTSCRAP_REQUEST_MAIN_STATUS_ERROR);
}
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "ProductScrapRequest", "打开了制品报废申请", TrendsTypeEnum.UPDATE);
return productscrapRequestMainMapper.updateById(mainDO);
}
@Transactional
@Override
public Integer submitProductscrapRequestMain(Long id) {
ProductscrapRequestMainDO mainDO = validateProductscrapRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute());
if(!flag) {
throw new ServiceException(PRODUCTSCRAP_REQUEST_MAIN_STATUS_ERROR);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
List<ProductscrapRequestDetailDO> detailDOList = productscrapRequestDetailMapper.selectList(mainDO.getId());
this.generateJob(mainDO, detailDOList);
}
trendsApi.createTrends(id, "ProductScrapRequest", "提交了制品报废申请", TrendsTypeEnum.UPDATE);
return productscrapRequestMainMapper.updateById(mainDO);
}
@Transactional
@Override
public Integer refusedProductscrapRequestMain(Long id) {
ProductscrapRequestMainDO mainDO = validateProductscrapRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.refused();
if(!flag) {
throw new ServiceException(PRODUCTSCRAP_REQUEST_MAIN_STATUS_ERROR);
}
mainDO.setStatus(requestStatusState.getState().getCode());
trendsApi.createTrends(id, "ProductScrapRequest", "驳回了制品报废申请", TrendsTypeEnum.UPDATE);
return productscrapRequestMainMapper.updateById(mainDO);
}
@Transactional
@Override
public Integer agreeProductscrapRequestMain(Long id) {
ProductscrapRequestMainDO mainDO = validateProductscrapRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.agree(mainDO.getAutoAgree());
if(!flag) {
throw new ServiceException(PRODUCTSCRAP_REQUEST_MAIN_STATUS_ERROR);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
List<ProductscrapRequestDetailDO> detailDOList = productscrapRequestDetailMapper.selectList(mainDO.getId());
this.generateJob(mainDO, detailDOList);
}
trendsApi.createTrends(id, "ProductScrapRequest", "审批通过了制品报废申请", TrendsTypeEnum.UPDATE);
return productscrapRequestMainMapper.updateById(mainDO);
}
@Transactional
@Override
public Integer handleProductscrapRequestMain(Long id) {
ProductscrapRequestMainDO mainDO = validateProductscrapRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.handle();
if(!flag) {
throw new ServiceException(PRODUCTSCRAP_REQUEST_MAIN_STATUS_ERROR);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用执行方法
List<ProductscrapRequestDetailDO> detailDOList = productscrapRequestDetailMapper.selectList(mainDO.getId());
this.generateJob(mainDO, detailDOList);
trendsApi.createTrends(id, "ProductScrapRequest", "执行了制品报废申请", TrendsTypeEnum.UPDATE);
return productscrapRequestMainMapper.updateById(mainDO);
}
@Override
public PageResult<ProductscrapRequestBomRespVO> getBomInfoPage(ProductscrapRequestDetailPageReqVO pageVO) {
IPage<ProductscrapRequestBomRespVO> myPage = MyBatisUtils.buildPage(pageVO);
List<Map<String,Object>> list = jobUtils.bomDismantleList(pageVO.getItemCode(),pageVO.getBomVersion());
List<ProductscrapRequestBomRespVO> resultList = new ArrayList<>();
Map<String, ProductscrapRequestDetailDO> detailbDOMap = new HashMap<>();
if(pageVO.getMasterId() != null){
List<ProductscrapRequestDetailDO> detailBOList = productscrapRequestDetailMapper.selectList(pageVO.getMasterId());
if(detailBOList != null && detailBOList.size() > 0){
detailbDOMap.putAll(detailBOList.stream().collect(Collectors.toMap(ProductscrapRequestDetailDO::getItemCode, item -> item)));
}
}
for(Map<String,Object> map:list){
ProductscrapRequestBomRespVO productscrapRequestBomRespVO = new ProductscrapRequestBomRespVO();
String itemCode = map.get("itemCode") != null?map.get("itemCode").toString():"";
productscrapRequestBomRespVO.setItemCode(itemCode);
if(StringUtils.isNotEmpty(productscrapRequestBomRespVO.getItemCode())){
if(detailbDOMap.get(productscrapRequestBomRespVO.getItemCode()) != null){
ProductscrapRequestDetailDO productscrapRequestDetailDO = detailbDOMap.get(productscrapRequestBomRespVO.getItemCode());
productscrapRequestBomRespVO = ProductscrapRequestDetailConvert.INSTANCE.convertRespVO(productscrapRequestDetailDO);
}else {
productscrapRequestBomRespVO.setQty(BigDecimal.ZERO);
}
}else {
productscrapRequestBomRespVO.setQty(BigDecimal.ZERO);
}
productscrapRequestBomRespVO.setUom(map.get("uom") != null?map.get("uom").toString():"");
productscrapRequestBomRespVO.setVersion(map.get("version") != null?map.get("version").toString():"");
resultList.add(productscrapRequestBomRespVO);
}
myPage.setRecords(resultList);
myPage.setTotal(resultList.size());
PageResult<ProductscrapRequestBomRespVO> pageResult = new PageResult(myPage.getRecords(),myPage.getTotal());
return pageResult;
}
} }

Loading…
Cancel
Save