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

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.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<String> 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<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")
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;
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<ProductscrapRequestDetailDO> pageResult = productscrapRequestDetailService.getProductscrapRequestDetailPage(pageVO);
return success(ProductscrapRequestDetailConvert.INSTANCE.convertPage(pageResult));
}
@PostMapping("/senior")
@Operation(summary = "高级搜索获得物品基本信息分页")
@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.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<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 = "最后更新者用户名")
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;
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<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 = "最后更新者用户名")
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 = "最后更新者用户名")
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 = "直接生成记录不能为空")
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)
public class ProductscrapRequestMainCreateReqVO extends ProductscrapRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
@Schema(description = "一级子表数据")
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.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<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;
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<ProductscrapRequestDetailDO> convertList03(List<ProductscrapRequestDetailCreateReqVO> 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
*/
@TableId(type = IdType.INPUT)
private String id;
@TableId
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 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
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())
.betweenIfPresent(ProductscrapRequestDetailDO::getUpdateTime, reqVO.getUpdateTime())
.eqIfPresent(ProductscrapRequestDetailDO::getUpdater, reqVO.getUpdater())
.eqIfPresent(ProductscrapRequestDetailDO::getMasterId, reqVO.getMasterId())
.orderByDesc(ProductscrapRequestDetailDO::getId));
}
default PageResult<ProductscrapRequestDetailDO> selectSenior(CustomConditions conditions) {
@ -69,7 +70,12 @@ public interface ProductscrapRequestDetailMapper extends BaseMapperX<Productscra
.eqIfPresent(ProductscrapRequestDetailDO::getUom, reqVO.getUom())
.betweenIfPresent(ProductscrapRequestDetailDO::getUpdateTime, reqVO.getUpdateTime())
.eqIfPresent(ProductscrapRequestDetailDO::getUpdater, reqVO.getUpdater())
.eqIfPresent(ProductscrapRequestDetailDO::getMasterId, reqVO.getMasterId())
.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));
}
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.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");

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 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<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;
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<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;
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<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;
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<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();
}
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");
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductScrapRequest");
ProductscrapRequestMainDO productscrapRequestMainDO = validateMainMethod(createReqVO, businesstypeDO, requestsettingDO);
//子表校验
// 主表信息
ProductscrapRequestMainDO mainBo = validateMainMethod(createReqVO, businesstypeDO, requestsettingDO);
// 子表校验
List<ProductscrapRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<ProductscrapRequestDetailDO> 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<RawscrapRequestDetailCreateReqVO> requestDetailCreateReqVOList = detailCreateReqVO.getChildList();
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) {
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<String> business = validatorbusinessbasic(productscrapRequestDetailDO.getInventoryStatus());
List<BalanceDO> 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<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) {
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<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) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest");
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest");
ProductscrapRequestMainDO productputawayRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<ProductscrapRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
if(subList!=null) {
List<ProductscrapRequestDetailDO> subDOList = ProductscrapRequestDetailConvert.INSTANCE.convertList05(subList);
for (ProductscrapRequestDetailDO productscrapRequestDetailDO : subDOList) {
validateDetailMethod(productscrapRequestDetailDO, businesstypeDO, productputawayRequestMainDO);
for (ProductscrapRequestDetailUpdateReqVO detailUpdateReqVO : subList) {
validateDetailMethod(detailUpdateReqVO, businesstypeDO, productputawayRequestMainDO);
}
List<ProductscrapRequestDetailDO> 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<ProductscrapRequestImportErrorVO> importProductscrapRequestList(List<ProductscrapRequestMainCreateReqVO> 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<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