diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java index 19671284..85f30ca6 100644 --- a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java @@ -712,13 +712,14 @@ public interface ErrorCodeConstants { //制品报废申请主ErrorCode ErrorCode PRODUCTSCRAP_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_110_000, "制品报废申请主不存在"); - //制品报废申请子ErrorCode - ErrorCode PRODUCTSCRAP_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_001_110_001, "制品报废申请子不存在"); - // 制品报废二级子表ErrorCode + ErrorCode PRODUCTSCRAP_REQUEST_MAIN_STATUS_ERROR = new ErrorCode(1_000_110_001, "制品返修申请状态错误"); + //制品报废申请一级子表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_IMPORT_LIST_IS_EMPTY= new ErrorCode(1_000_111_101, "制品报废子申请导入列表是空"); - //制品报废申请子ErrorCode - ErrorCode PRODUCTSCRAP_REQUEST_NOT_EXISTS = new ErrorCode(1_001_110_002, "制品报废申请不存在"); + //制品报废任务主ErrorCode ErrorCode PRODUCTSCRAP_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_111_000, "制品报废任务主不存在"); //制品报废任务子ErrorCode diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/ProductscrapRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/ProductscrapRecordMainController.java index 4d3bc6a3..5cb4bd04 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/ProductscrapRecordMainController.java +++ b/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.module.system.api.user.AdminUserApi; 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 org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -49,6 +51,7 @@ public class ProductscrapRecordMainController { public CommonResult createProductscrapRecordMain(@Valid @RequestBody ProductscrapRecordMainCreateReqVO createReqVO) { return success(productscrapRecordMainService.createProductscrapRecordMain(createReqVO)); } + @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") @PreAuthorize("@ss.hasPermission('wms:ProductscrapRecordMain:query')") @@ -62,6 +65,7 @@ public class ProductscrapRecordMainController { } return success(result); } + @PutMapping("/update") @Operation(summary = "更新制品报废记录主") @PreAuthorize("@ss.hasPermission('wms:productscrap-record-main:update')") @@ -122,4 +126,12 @@ public class ProductscrapRecordMainController { ExcelUtils.write(response, "制品报废记录主.xls", "数据", ProductscrapRecordMainExcelVO.class, datas); } + @GetMapping("/bomPage") + @Operation(summary = "获取BOM接口") + @PreAuthorize("@ss.hasPermission('wms:productscrap-record-main:query')") + public CommonResult> getBomInfoPage(RawscrapRecordDetailPageReqVO pageVO) { + PageResult pageResult = productscrapRecordMainService.getBomInfoPage(pageVO); + return success(pageResult); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/ProductscrapRecordDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/ProductscrapRecordDetailBaseVO.java index 6c930efd..c3ac0241 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/ProductscrapRecordDetailBaseVO.java +++ b/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") private String jobDetailId; + @Schema(description = "主键ID") + private Long masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestDetailController.java index 4d7eb6f4..4078e054 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestDetailController.java +++ b/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; + +import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; +import com.win.framework.excel.core.util.ExcelUtils; +import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.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 javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; -import com.win.framework.common.pojo.PageResult; -import com.win.framework.common.pojo.CommonResult; +import java.util.Collection; +import java.util.List; + import static com.win.framework.common.pojo.CommonResult.success; -import com.win.framework.excel.core.util.ExcelUtils; -import com.win.framework.operatelog.core.annotations.OperateLog; -import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; -import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO; -import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestDetailConvert; -import com.win.module.wms.service.productscrapRequest.ProductscrapRequestDetailService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 制品报废申请子") @RestController @@ -85,6 +89,7 @@ public class ProductscrapRequestDetailController { PageResult pageResult = productscrapRequestDetailService.getProductscrapRequestDetailPage(pageVO); return success(ProductscrapRequestDetailConvert.INSTANCE.convertPage(pageResult)); } + @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") @PreAuthorize("@ss.hasPermission('wms:productscrap-request-detail:query')") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java index 5e8c60cc..67139814 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java +++ b/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.CustomConditions; +import com.win.framework.common.pojo.PageResult; import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.framework.excel.core.util.ConvertUtil; -import com.win.framework.common.pojo.PageResult; import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.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.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; +import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.productscrapRequest.ProductscrapRequestMainService; 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; @@ -24,17 +24,15 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; - -import java.time.LocalDateTime; -import java.time.ZoneOffset; 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; -import static com.win.module.wms.enums.DictTypeConstants.INVENTORY_STATUS; @Tag(name = "管理后台 - 制品报废申请主") @RestController @@ -165,4 +163,66 @@ public class ProductscrapRequestMainController { return success(returnMap); } + @PutMapping("/close") + @Operation(summary = "关闭") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:productscrap-request-main:close')") + public CommonResult 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 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 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 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 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 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> getBomInfoPage(ProductscrapRequestDetailPageReqVO pageVO) { + PageResult pageResult = productscrapRequestMainService.getBomInfoPage(pageVO); + return success(pageResult); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestBomRespVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestBomRespVO.java new file mode 100644 index 00000000..c7f1de75 --- /dev/null +++ b/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; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailBaseVO.java index 8340197c..4114caa5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailBaseVO.java +++ b/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 = "最后更新者用户名") private String updater; + @Schema(description = "生产线代码") + private String productionLineCode; + + @Schema(description = "工位代码") + private String workStationCode; + + @Schema(description = "工序代码") + private String processCode; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailCreateReqVO.java index 02aa92f7..01556250 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailCreateReqVO.java +++ b/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; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailbCreateReqVO; import lombok.*; import io.swagger.v3.oas.annotations.media.Schema; +import java.util.List; + @Schema(description = "管理后台 - 制品报废申请子创建 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class ProductscrapRequestDetailCreateReqVO extends ProductscrapRequestDetailBaseVO { + @SubObject + @Schema(description = "二级子表数据") + private List childList; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailExportReqVO.java index 779d8f7d..eac78751 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailExportReqVO.java +++ b/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 = "最后更新者用户名") private String updater; + @Schema(description = "主键ID") + private Long masterId; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailPageReqVO.java index 8f9949a5..170b1c3e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailPageReqVO.java +++ b/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 = "最后更新者用户名") private String updater; + @Schema(description = "主键ID") + private Long masterId; + + @Schema(description = "bom版本") + private String bomVersion; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainBaseVO.java index 42506ddd..519cba55 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainBaseVO.java +++ b/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 = "直接生成记录不能为空") 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; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainCreateReqVO.java index e6667492..9f9b1f32 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainCreateReqVO.java +++ b/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) public class ProductscrapRequestMainCreateReqVO extends ProductscrapRequestMainBaseVO { @SubObject - @Schema(description = "子表数据") + @Schema(description = "一级子表数据") private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRecord/RawscrapRecordDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRecord/RawscrapRecordDetailConvert.java index dec6f934..bc80cbbd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRecord/RawscrapRecordDetailConvert.java +++ b/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.RawscrapRecordDetailUpdateReqVO; 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.factory.Mappers; @@ -34,4 +35,5 @@ public interface RawscrapRecordDetailConvert { List convertList02(List list); + RawscrapRecordDetailDO convert(RawscrapRequestDetailDO rawscrapRequestDetailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestDetailConvert.java index de1b877c..c6744584 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestDetailConvert.java +++ b/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; 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.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.ProductscrapRequestMainDO; import org.mapstruct.Mapper; -import org.mapstruct.Mapping; -import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import java.util.List; @@ -42,23 +33,6 @@ public interface ProductscrapRequestDetailConvert { List convertList03(List list); List convertList05(List 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); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRecord/ProductscrapRecordMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRecord/ProductscrapRecordMainDO.java index 261b5d1d..e542517f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRecord/ProductscrapRecordMainDO.java +++ b/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 */ - @TableId(type = IdType.INPUT) - private String id; + @TableId + private Long id; /** * 申请单号 */ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestDetailDO.java index b12bc23a..dc5d5c59 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestDetailDO.java +++ b/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 productionLineCode; + /** + * 工位代码 + */ + private String workStationCode; + /** + * 工序代码 + */ + private String processCode; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestMainDO.java index 62c8780a..8c2f9271 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRequest/ProductscrapRequestMainDO.java +++ b/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 private String directCreateRecord; + /** + * 入库库存状态范围 + */ + private String inInventoryStatuses; + + /** + * 出库库存状态范围 + */ + private String outInventoryStatuses; + /** + * 车间代码 + */ + private String workshopCode; + /** + * 班组 + */ + private String team; + /** + * 班次 + */ + private String shift; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRequest/ProductscrapRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRequest/ProductscrapRequestDetailMapper.java index b632f0c1..f5502369 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRequest/ProductscrapRequestDetailMapper.java +++ b/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 selectSenior(CustomConditions conditions) { @@ -69,7 +70,12 @@ public interface ProductscrapRequestDetailMapper extends BaseMapperX selectList(Long masterId){ + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(ProductscrapRequestDetailDO::getMasterId,masterId)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRequest/RawscrapRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRequest/RawscrapRequestDetailMapper.java index 7d5eb702..feb27565 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRequest/RawscrapRequestDetailMapper.java +++ b/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 selectList(Long masterId){ + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(RawscrapRequestDetailDO::getMasterId,masterId)); + }; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRequest/ProductrepairRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRequest/ProductrepairRequestMainServiceImpl.java index 28986e03..25922c02 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productrepairRequest/ProductrepairRequestMainServiceImpl.java +++ b/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.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.user.AdminUserApi; -import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.productrepairRecord.vo.ProductrepairRecordDetailCreateReqVO; import com.win.module.wms.controller.productrepairRecord.vo.ProductrepairRecordMainCreateReqVO; import com.win.module.wms.controller.productrepairRequest.vo.*; 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.ProductrepairRecordDetailConvert; import com.win.module.wms.convert.productrepairRecord.ProductrepairRecordMainConvert; import com.win.module.wms.convert.productrepairRequest.ProductrepairRequestDetailaConvert; import com.win.module.wms.convert.productrepairRequest.ProductrepairRequestDetailbConvert; 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.businesstype.BusinesstypeDO; 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.team.TeamDO; 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.mysql.productrepairRecord.ConsumeRecordDetailbMapper; import com.win.module.wms.dal.mysql.productrepairRecord.ProductrepairRecordDetailMapper; @@ -144,7 +137,7 @@ public class ProductrepairRequestMainServiceImpl implements ProductrepairRequest ProductrepairRecordMainCreateReqVO productrepairRecordMainCreateReqVO = new ProductrepairRecordMainCreateReqVO(); BeanUtils.copyProperties(mainDO, productrepairRecordMainCreateReqVO); 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); //增加业务类型 BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductRepairRecord"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRecord/ProductscrapRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRecord/ProductscrapRecordMainService.java index dc972e2f..cb4b8c10 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRecord/ProductscrapRecordMainService.java +++ b/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 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 com.win.module.wms.controller.productscrapRecord.vo.*; import com.win.module.wms.dal.dataobject.productscrapRecord.ProductscrapRecordMainDO; import com.win.framework.common.pojo.PageResult; @@ -80,4 +77,10 @@ public interface ProductscrapRecordMainService { */ List getProductscrapRecordMainList(ProductscrapRecordMainExportReqVO exportReqVO); + /** + * bom分页记录 + * @param pageVO bom请求数据 + * @return 分页返回数据 + */ + PageResult getBomInfoPage(RawscrapRecordDetailPageReqVO pageVO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRecord/ProductscrapRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRecord/ProductscrapRecordMainServiceImpl.java index 65c5ece5..0df5eba1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRecord/ProductscrapRecordMainServiceImpl.java +++ b/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; 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.module.wms.controller.productscrapRecord.vo.*; 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.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.module.wms.enums.ErrorCodeConstants.*; +import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTSCRAP_RECORD_MAIN_NOT_EXISTS; /** * 制品报废记录主 Service 实现类 @@ -31,6 +30,8 @@ public class ProductscrapRecordMainServiceImpl implements ProductscrapRecordMain @Resource private ProductscrapRecordMainMapper productscrapRecordMainMapper; + @Resource + private RawscrapRecordDetailMapper rawscrapRecordDetailMapper; @Override public String createProductscrapRecordMain(ProductscrapRecordMainCreateReqVO createReqVO) { @@ -38,7 +39,7 @@ public class ProductscrapRecordMainServiceImpl implements ProductscrapRecordMain ProductscrapRecordMainDO productscrapRecordMain = ProductscrapRecordMainConvert.INSTANCE.convert(createReqVO); productscrapRecordMainMapper.insert(productscrapRecordMain); // 返回 - return productscrapRecordMain.getId(); + return String.valueOf(productscrapRecordMain.getId()); } @Override @@ -87,4 +88,11 @@ public class ProductscrapRecordMainServiceImpl implements ProductscrapRecordMain return productscrapRecordMainMapper.selectList(exportReqVO); } + @Override + public PageResult getBomInfoPage(RawscrapRecordDetailPageReqVO pageVO) { + PageResult pageResult = rawscrapRecordDetailMapper.selectPage(pageVO); + PageResult page = RawscrapRecordDetailConvert.INSTANCE.convertPage(pageResult); + return page; + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainService.java index 6c34b50c..cc606c0d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainService.java +++ b/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; -import java.util.*; -import javax.validation.*; - 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.module.wms.controller.productscrapRequest.vo.*; import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; @@ -93,6 +86,54 @@ public interface ProductscrapRequestMainService { * @param updatePart 是否支持更新 * @return 导入结果 */ - public List importProductscrapRequestList(List datas, Integer mode, boolean updatePart); + List importProductscrapRequestList(List 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 getBomInfoPage(ProductscrapRequestDetailPageReqVO pageVO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java index 8eecb16b..108089bd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java +++ b/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; import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; 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.util.validation.ValidationUtils; 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.enums.TrendsTypeEnum; import com.win.module.system.api.dict.DictDataApi; import com.win.module.system.api.dict.dto.DictDataRespDTO; import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.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.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.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.businesstype.BusinesstypeDO; 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.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.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.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.RequestStatusState; 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.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 org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; -import java.math.BigDecimal; -import java.time.LocalDateTime; + import javax.annotation.Resource; import javax.validation.Validator; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; 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.*; /** @@ -54,87 +86,245 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa @Resource private ProductscrapRequestMainMapper productscrapRequestMainMapper; - @Resource private Validator validator; - @Resource private ProductscrapRequestDetailMapper productscrapRequestDetailMapper; - @Resource private SerialNumberApi serialNumberApi; - @Resource private DictDataApi dictDataApi; - @Resource private JobUtils jobUtils; @Resource private TrendsApi trendsApi; - @Resource private ItembasicService itembasicService; - @Resource 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 public Long createProductscrapRequestMain(ProductscrapRequestMainCreateReqVO createReqVO) { + // 调用:Setting——>QReqS(ProductScrapRequest) RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductScrapRequest"); - ProductscrapRequestMainDO productscrapRequestMainDO = validatorToCreate(createReqVO); + ProductscrapRequestMainDO productscrapRequestMainDO = validatorToCreate(createReqVO,requestsettingDO); //调用自动执行方法 if (RequestStatusEnum.HANDLING.getCode().equals(productscrapRequestMainDO.getStatus())) { - + List 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(); } - private ProductscrapRequestMainDO validatorToCreate(ProductscrapRequestMainCreateReqVO createReqVO) { + private void generateJob(ProductscrapRequestMainDO mainDO, List 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 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 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"); - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductScrapRequest"); - ProductscrapRequestMainDO productscrapRequestMainDO = validateMainMethod(createReqVO, businesstypeDO, requestsettingDO); - //子表校验 + // 主表信息 + ProductscrapRequestMainDO mainBo = validateMainMethod(createReqVO, businesstypeDO, requestsettingDO); + // 子表校验 List subList = createReqVO.getSubList(); - List subDOList = ProductscrapRequestDetailConvert.INSTANCE.convertList03(subList); - for (ProductscrapRequestDetailDO productscrapRequestDetailDO : subDOList) { - validateDetailMethod(productscrapRequestDetailDO, businesstypeDO, productscrapRequestMainDO); - } - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); - productscrapRequestMainDO.setNumber(number); - productscrapRequestMainMapper.insert(productscrapRequestMainDO); - for (ProductscrapRequestDetailDO productscrapRequestDetailDO : subDOList) { - productscrapRequestDetailDO.setMasterId(productscrapRequestMainDO.getId()); - productscrapRequestDetailDO.setNumber(productscrapRequestMainDO.getNumber()); - } - productscrapRequestDetailMapper.insertBatch(subDOList); - return productscrapRequestMainDO; + for(ProductscrapRequestDetailCreateReqVO detailCreateReqVO:subList){ + validateDetailMethod(detailCreateReqVO, businesstypeDO,mainBo); + } + String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_SCRAP_REQUEST.getCode()); + mainBo.setNumber(number); + productscrapRequestMainMapper.insert(mainBo); + for (ProductscrapRequestDetailCreateReqVO detailCreateReqVO : subList) { + ProductscrapRequestDetailDO detailDO = ProductscrapRequestDetailConvert.INSTANCE.convert(detailCreateReqVO); + detailDO.setMasterId(mainBo.getId()); + detailDO.setNumber(mainBo.getNumber()); + productscrapRequestDetailMapper.insert(detailDO); + List requestDetailCreateReqVOList = detailCreateReqVO.getChildList(); + List 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 inventoryStatus = new ArrayList<>(); + inventoryStatus.add("OK"); // 查询合格的边料库存余额 + List 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) { - ItembasicDO itembasic = validatorItembasic(productscrapRequestDetailDO.getItemCode()); - productscrapRequestDetailDO.setItemDesc1(itembasic.getDesc1()); - productscrapRequestDetailDO.setItemDesc2(itembasic.getDesc2()); - productscrapRequestDetailDO.setItemName(itembasic.getName()); - productscrapRequestDetailDO.setProjectCode(itembasic.getProject()); - Isuom(productscrapRequestDetailDO.getUom(), itembasic.getUom()); - jobUtils.selectItembasicExist(itembasic.getCode(), businesstypeDO); - jobUtils.ifInToLocationType(productscrapRequestDetailDO.getFromLocationCode(), businesstypeDO); - jobUtils.ifOutInventoryStatuses(productscrapRequestDetailDO.getInventoryStatus(), businesstypeDO); - List business = validatorbusinessbasic(productscrapRequestDetailDO.getInventoryStatus()); - List balance = validatorbalance(productscrapRequestDetailDO.getItemCode(), productscrapRequestDetailDO.getPackingNumber(), - productscrapRequestDetailDO.getBatch(), productscrapRequestDetailDO.getFromLocationCode(), business); - BalanceDO blance1 = balance.get(0); - for(BalanceDO balance2 :balance) { - productscrapRequestMainDO.setFromWarehouseCode(balance2.getWarehouseCode()); - productscrapRequestMainDO.setDueTime(balance2.getExpireDate()); + private void validateDetailMethod(ProductscrapRequestDetailBaseVO detailCreateReqVO, BusinesstypeDO businesstypeDO, ProductscrapRequestMainDO productscrapRequestMainDO) { + // 校验--生产线基本信息 + ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailCreateReqVO.getProductionLineCode()); + detailCreateReqVO.setFromLocationCode(productionlineDO.getRawLocationCode()); + // 校验--物品基本信息 BQ——>QI + ItembasicDO itembasic = validatorItembasic(detailCreateReqVO.getItemCode()); + detailCreateReqVO.setItemDesc1(itembasic.getDesc1()); + detailCreateReqVO.setItemDesc2(itembasic.getDesc2()); + detailCreateReqVO.setItemName(itembasic.getName()); + detailCreateReqVO.setProjectCode(itembasic.getProject()); + detailCreateReqVO.setUom(itembasic.getUom()); + // 校验--工位基础信息 + if(StringUtils.isNotEmpty(detailCreateReqVO.getWorkStationCode())){ + WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailCreateReqVO.getWorkStationCode(), productscrapRequestMainDO.getWorkshopCode(), detailCreateReqVO.getProductionLineCode()); + detailCreateReqVO.setFromLocationCode(workstationDO.getRawLocationCode()); } - 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 business = validatorbusinessbasic(detailCreateReqVO.getInventoryStatus()); +// List 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) { 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.setAutoAgree(requestsettingDO.getAutoAgree()); productscrapRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); @@ -143,9 +333,17 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa productscrapRequestMainDO.setBusinessType(businesstypeDO.getCode()); productscrapRequestMainDO.setFromLocationTypes(businesstypeDO.getInLocationTypes()); productscrapRequestMainDO.setFromAreaCodes(businesstypeDO.getInAreaCodes()); + productscrapRequestMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses());//入库库存状态范围 + productscrapRequestMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses());//出库库存状态范围 return productscrapRequestMainDO; } + private void validordurtime(LocalDateTime durtime){ + if(!durtime.isAfter(LocalDateTime.now())){ + throw exception(TIME_AFTER,LocalDateTime.now(),durtime); + } + } + @VisibleForTesting private void validateProductscrapExists(Long id) { if (id == null) { @@ -159,26 +357,28 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa @Override public void updateProductscrapRequestMain(ProductscrapRequestMainUpdateReqVO updateReqVO) { - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductPutawayRequest"); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductScrapRequest"); // 校验存在 validateProductscrapRequestMainExists(updateReqVO.getId()); // 更新 ProductscrapRequestMainDO productscrapRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); if(RequestStatusEnum.HANDLING.getCode().equals(productscrapRequestMainDO.getStatus())) { - + List 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) { - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest"); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest"); ProductscrapRequestMainDO productputawayRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); //子表校验 List subList = updateReqVO.getSubList(); if(subList!=null) { - List subDOList = ProductscrapRequestDetailConvert.INSTANCE.convertList05(subList); - for (ProductscrapRequestDetailDO productscrapRequestDetailDO : subDOList) { - validateDetailMethod(productscrapRequestDetailDO, businesstypeDO, productputawayRequestMainDO); + for (ProductscrapRequestDetailUpdateReqVO detailUpdateReqVO : subList) { + validateDetailMethod(detailUpdateReqVO, businesstypeDO, productputawayRequestMainDO); } + List subDOList = ProductscrapRequestDetailConvert.INSTANCE.convertList05(subList); productscrapRequestDetailMapper.updateBatch(subDOList); } productscrapRequestMainMapper.updateById(productputawayRequestMainDO); @@ -186,7 +386,6 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa } - @Override public void deleteProductscrapRequestMain(Long id) { // 校验存在 @@ -200,10 +399,12 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa return productscrapRequestMainMapper.selectSenior(conditions); } - private void validateProductscrapRequestMainExists(Long id) { - if (productscrapRequestMainMapper.selectById(id) == null) { + private ProductscrapRequestMainDO validateProductscrapRequestMainExists(Long id) { + ProductscrapRequestMainDO productscrapRequestMainDO = productscrapRequestMainMapper.selectById(id); + if (productscrapRequestMainDO == null) { throw exception(PRODUCTSCRAP_REQUEST_MAIN_NOT_EXISTS); } + return productscrapRequestMainDO; } @Override @@ -232,7 +433,6 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa } } - private String validateProductscrapRequestMainImport(ProductscrapRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { StringBuilder message = new StringBuilder(); 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); String value = dictDataRespDTO.getLabel(); 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) { return "ture"; } else { @@ -305,7 +505,7 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa detailDo.setItemName(itembasic.getName()); detailDo.setProjectCode(itembasic.getProject()); try { - Isuom(detailDo.getUom(), itembasic.getUom()); + validatorUom(detailDo.getUom(), itembasic.getUom()); } catch (Exception ex) { message.append(ex.getMessage()).append(","); } @@ -338,7 +538,7 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa mainDo.setDueTime(balance2.getExpireDate()); } BalanceDO blance1 = balance.get(0); - isqty(detailDo.getQty(), blance1.getQty()); + validatorQty(detailDo.getQty(), blance1.getQty()); } catch (Exception ex) { message.append(ex.getMessage()).append(","); } @@ -356,7 +556,6 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa return message.toString(); } - public List importProductscrapRequestList(List datas, Integer mode, boolean updatePart) { if (CollUtil.isEmpty(datas)) { throw exception(PRODUCTSCRAP_REQUEST_MAIN_NOT_EXISTS); @@ -398,5 +597,139 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa }); 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 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 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 detailDOList = productscrapRequestDetailMapper.selectList(mainDO.getId()); + this.generateJob(mainDO, detailDOList); + trendsApi.createTrends(id, "ProductScrapRequest", "执行了制品报废申请", TrendsTypeEnum.UPDATE); + return productscrapRequestMainMapper.updateById(mainDO); + } + + @Override + public PageResult getBomInfoPage(ProductscrapRequestDetailPageReqVO pageVO) { + IPage myPage = MyBatisUtils.buildPage(pageVO); + List> list = jobUtils.bomDismantleList(pageVO.getItemCode(),pageVO.getBomVersion()); + List resultList = new ArrayList<>(); + Map detailbDOMap = new HashMap<>(); + if(pageVO.getMasterId() != null){ + List detailBOList = productscrapRequestDetailMapper.selectList(pageVO.getMasterId()); + if(detailBOList != null && detailBOList.size() > 0){ + detailbDOMap.putAll(detailBOList.stream().collect(Collectors.toMap(ProductscrapRequestDetailDO::getItemCode, item -> item))); + } + } + for(Map 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 pageResult = new PageResult(myPage.getRecords(),myPage.getTotal()); + return pageResult; + } }