Browse Source

补料 发料 生产退料 隔离退料 制品上架 制品收货 制品拆解 直接创建记录

master
陈薪名 2 years ago
parent
commit
1bdbe0fc3b
  1. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/IssueRecordMainController.java
  2. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/vo/IssueRecordMainCreateReqVO.java
  3. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/ProductdismantleRecordMainController.java
  4. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/vo/ProductdismantleRecordMainCreateReqVO.java
  5. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRecord/ProductionreturnRecordMainController.java
  6. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRecord/vo/ProductionreturnRecordMainCreateReqVO.java
  7. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRecord/ProductputawayRecordMainController.java
  8. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRecord/vo/ProductputawayRecordMainCreateReqVO.java
  9. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/ProductreceiptRecordMainController.java
  10. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordMainCreateReqVO.java
  11. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRecord/RepleinshRecordMainController.java
  12. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordDetailConvert.java
  13. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productdismantleRecord/ProductdismantleRecordDetailaConvert.java
  14. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRecord/ProductionreturnRecordDetailConvert.java
  15. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRecord/ProductputawayRecordDetailConvert.java
  16. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRecord/ProductreceiptRecordDetailConvert.java
  17. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainService.java
  18. 145
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainServiceImpl.java
  19. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainService.java
  20. 170
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainServiceImpl.java
  21. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRecord/ProductionreturnRecordMainService.java
  22. 162
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRecord/ProductionreturnRecordMainServiceImpl.java
  23. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRecord/ProductputawayRecordMainService.java
  24. 146
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRecord/ProductputawayRecordMainServiceImpl.java
  25. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestDetailServiceImpl.java
  26. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java
  27. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainService.java
  28. 126
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainServiceImpl.java
  29. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java
  30. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRecord/RepleinshRecordMainService.java
  31. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRecord/RepleinshRecordMainServiceImpl.java
  32. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/IssueRecordMainController.java

@ -4,6 +4,7 @@ import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordMainCreateReqVO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.issueRecord.IssueRecordDetailService;
@ -48,6 +49,13 @@ public class IssueRecordMainController {
@Resource
private AdminUserApi userApi;
@PostMapping("/create")
@Operation(summary = "创建发料记录")
@PreAuthorize("@ss.hasPermission('wms:issue-record-main:create')")
public CommonResult<String> createIssueRecordMain(@Valid @RequestBody IssueRecordMainCreateReqVO createReqVO) {
return success(issueRecordMainService.createIssueRecordMain(createReqVO));
}
@GetMapping("/get")
@Operation(summary = "获得发料记录主")
@Parameter(name = "id", description = "编号", required = true, example = "1024")

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/vo/IssueRecordMainCreateReqVO.java

@ -1,12 +1,18 @@
package com.win.module.wms.controller.issueRecord.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordDetailCreateReqVO;
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 IssueRecordMainCreateReqVO extends IssueRecordMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<IssueRecordDetailCreateReqVO> subList;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/ProductdismantleRecordMainController.java

@ -48,7 +48,7 @@ public class ProductdismantleRecordMainController {
@PostMapping("/create")
@Operation(summary = "创建制品拆解记录主")
@PreAuthorize("@ss.hasPermission('wms:productdismantle-record-main:create')")
public CommonResult<Long> createProductdismantleRecordMain(@Valid @RequestBody ProductdismantleRecordMainCreateReqVO createReqVO) {
public CommonResult<String> createProductdismantleRecordMain(@Valid @RequestBody ProductdismantleRecordMainCreateReqVO createReqVO) {
return success(productdismantleRecordMainService.createProductdismantleRecordMain(createReqVO));
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/vo/ProductdismantleRecordMainCreateReqVO.java

@ -1,14 +1,20 @@
package com.win.module.wms.controller.productdismantleRecord.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordDetailCreateReqVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.util.List;
@Schema(description = "管理后台 - 制品拆解记录主创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ProductdismantleRecordMainCreateReqVO extends ProductdismantleRecordMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<ProductdismantleRecordDetailaCreateReqVO> subList;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRecord/ProductionreturnRecordMainController.java

@ -52,7 +52,7 @@ public class ProductionreturnRecordMainController {
@PostMapping("/create")
@Operation(summary = "创建生产退料记录主")
@PreAuthorize("@ss.hasPermission('wms:productionreturn-record-main:create')")
public CommonResult<Long> createProductionreturnRecordMain(@Valid @RequestBody ProductionreturnRecordMainCreateReqVO createReqVO) {
public CommonResult<String> createProductionreturnRecordMain(@Valid @RequestBody ProductionreturnRecordMainCreateReqVO createReqVO) {
return success(productionreturnRecordMainService.createProductionreturnRecordMain(createReqVO));
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRecord/vo/ProductionreturnRecordMainCreateReqVO.java

@ -1,12 +1,18 @@
package com.win.module.wms.controller.productionreturnRecord.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailCreateReqVO;
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 ProductionreturnRecordMainCreateReqVO extends ProductionreturnRecordMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<ProductionreturnRecordDetailCreateReqVO> subList;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRecord/ProductputawayRecordMainController.java

@ -48,7 +48,7 @@ public class ProductputawayRecordMainController {
@PostMapping("/create")
@Operation(summary = "创建制品上架记录主")
@PreAuthorize("@ss.hasPermission('wms:productputaway-record-main:create')")
public CommonResult<Long> createProductputawayRecordMain(@Valid @RequestBody ProductputawayRecordMainCreateReqVO createReqVO) {
public CommonResult<String> createProductputawayRecordMain(@Valid @RequestBody ProductputawayRecordMainCreateReqVO createReqVO) {
return success(productputawayRecordMainService.createProductputawayRecordMain(createReqVO));
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRecord/vo/ProductputawayRecordMainCreateReqVO.java

@ -1,12 +1,18 @@
package com.win.module.wms.controller.productputawayRecord.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordDetailCreateReqVO;
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 ProductputawayRecordMainCreateReqVO extends ProductputawayRecordMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<ProductputawayRecordDetailCreateReqVO> subList;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/ProductreceiptRecordMainController.java

@ -53,7 +53,7 @@ public class ProductreceiptRecordMainController {
@PostMapping("/create")
@Operation(summary = "创建制品收货记录主")
@PreAuthorize("@ss.hasPermission('wms:productreceipt-record-main:create')")
public CommonResult<Long> createProductreceiptRecordMain(@Valid @RequestBody ProductreceiptRecordMainCreateReqVO createReqVO) {
public CommonResult<String> createProductreceiptRecordMain(@Valid @RequestBody ProductreceiptRecordMainCreateReqVO createReqVO) {
return success(productreceiptRecordMainService.createProductreceiptRecordMain(createReqVO));
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordMainCreateReqVO.java

@ -1,12 +1,18 @@
package com.win.module.wms.controller.productreceiptRecord.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordDetailCreateReqVO;
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 ProductreceiptRecordMainCreateReqVO extends ProductreceiptRecordMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<ProductreceiptRecordDetailCreateReqVO> subList;
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRecord/RepleinshRecordMainController.java

@ -52,9 +52,9 @@ public class RepleinshRecordMainController {
@PostMapping("/create")
@Operation(summary = "创建补料记录记录")
@Operation(summary = "创建补料记录")
@PreAuthorize("@ss.hasPermission('wms:repleinsh-record-main:create')")
public CommonResult<Long> createRepleinshRecordMain(@Valid @RequestBody RepleinshRecordMainCreateReqVO createReqVO) {
public CommonResult<String> createRepleinshRecordMain(@Valid @RequestBody RepleinshRecordMainCreateReqVO createReqVO) {
return success(repleinshRecordMainService.createRepleinshRecordMain(createReqVO));
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordDetailConvert.java

@ -8,6 +8,8 @@ import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailCreateReqVO
import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailExcelVO;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailRespVO;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailUpdateReqVO;
import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordDetailCreateReqVO;
import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO;
@ -34,4 +36,6 @@ public interface IssueRecordDetailConvert {
List<IssueRecordDetailExcelVO> convertList02(List<IssueRecordDetailDO> list);
List<IssueRecordDetailDO> convertList03(List<IssueRecordDetailCreateReqVO> list);
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productdismantleRecord/ProductdismantleRecordDetailaConvert.java

@ -8,6 +8,8 @@ import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleR
import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordDetailaExcelVO;
import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordDetailaRespVO;
import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordDetailaUpdateReqVO;
import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordDetailCreateReqVO;
import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.productdismantleRecord.ProductdismantleRecordDetailaDO;
@ -34,4 +36,6 @@ public interface ProductdismantleRecordDetailaConvert {
List<ProductdismantleRecordDetailaExcelVO> convertList02(List<ProductdismantleRecordDetailaDO> list);
List<ProductdismantleRecordDetailaDO> convertList03(List<ProductdismantleRecordDetailaCreateReqVO> list);
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRecord/ProductionreturnRecordDetailConvert.java

@ -4,10 +4,12 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailCreateReqVO;
import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordDetailCreateReqVO;
import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordDetailExcelVO;
import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordDetailRespVO;
import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.productionreturnRecord.ProductionreturnRecordDetailDO;
@ -34,4 +36,6 @@ public interface ProductionreturnRecordDetailConvert {
List<ProductionreturnRecordDetailExcelVO> convertList02(List<ProductionreturnRecordDetailDO> list);
List<ProductionreturnRecordDetailDO> convertList03(List<ProductionreturnRecordDetailCreateReqVO> list);
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRecord/ProductputawayRecordDetailConvert.java

@ -4,10 +4,12 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailCreateReqVO;
import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordDetailCreateReqVO;
import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordDetailExcelVO;
import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordDetailRespVO;
import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.productputawayRecord.ProductputawayRecordDetailDO;
@ -34,4 +36,6 @@ public interface ProductputawayRecordDetailConvert {
List<ProductputawayRecordDetailExcelVO> convertList02(List<ProductputawayRecordDetailDO> list);
List<ProductputawayRecordDetailDO> convertList03(List<ProductputawayRecordDetailCreateReqVO> list);
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRecord/ProductreceiptRecordDetailConvert.java

@ -4,10 +4,12 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailCreateReqVO;
import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordDetailCreateReqVO;
import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordDetailExcelVO;
import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordDetailRespVO;
import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordDetailDO;
@ -34,4 +36,6 @@ public interface ProductreceiptRecordDetailConvert {
List<ProductreceiptRecordDetailExcelVO> convertList02(List<ProductreceiptRecordDetailDO> list);
List<ProductreceiptRecordDetailDO> convertList03(List<ProductreceiptRecordDetailCreateReqVO> list);
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainService.java

@ -25,7 +25,7 @@ public interface IssueRecordMainService {
* @param createReqVO 创建信息
* @return 编号
*/
Long createIssueRecordMain(@Valid IssueRecordMainCreateReqVO createReqVO);
String createIssueRecordMain(@Valid IssueRecordMainCreateReqVO createReqVO);
/**
* 更新发料记录主

145
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainServiceImpl.java

@ -1,14 +1,39 @@
package com.win.module.wms.service.issueRecord;
import com.win.framework.common.pojo.CustomConditions;
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.issueRecord.vo.IssueRecordMainCreateReqVO;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainExportReqVO;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainPageReqVO;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainUpdateReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.issueRecord.IssueRecordDetailConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.mysql.issueRecord.IssueRecordDetailMapper;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.recordsetting.RecordsettingService;
import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordMainDO;
@ -18,6 +43,7 @@ import com.win.module.wms.convert.issueRecord.IssueRecordMainConvert;
import com.win.module.wms.dal.mysql.issueRecord.IssueRecordMainMapper;
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.*;
/**
@ -29,16 +55,127 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*;
@Validated
public class IssueRecordMainServiceImpl implements IssueRecordMainService {
@Resource
private IssueRecordDetailMapper issueRecordDetailMapper;
@Resource
private TransactionService transactionService;
@Resource
private ItembasicService itembasicService;
@Resource
private LocationService locationService;
@Resource
private IssueRecordMainMapper issueRecordMainMapper;
@Resource
private TrendsApi trendsApi;
@Resource
private JobUtils jobUtils;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private AdminUserApi userApi;
@Resource
private RecordsettingService recordsettingService;
@Override
public Long createIssueRecordMain(IssueRecordMainCreateReqVO createReqVO) {
@Transactional
public String createIssueRecordMain(IssueRecordMainCreateReqVO createReqVO) {
// 插入
IssueRecordMainDO issueRecordMain = IssueRecordMainConvert.INSTANCE.convert(createReqVO);
issueRecordMainMapper.insert(issueRecordMain);
IssueRecordMainDO mainDO = IssueRecordMainConvert.INSTANCE.convert(createReqVO);
AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId());
List<IssueRecordDetailDO> subDOList = IssueRecordDetailConvert.INSTANCE.convertList03(createReqVO.getSubList());
String number = serialNumberApi.generateCode(RuleCodeEnum.ISSUE_RECORD.getCode());
mainDO.setNumber(number);
mainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId()));
mainDO.setExecuteTime(LocalDateTime.now());
mainDO.setActiveDate(LocalDateTime.now());
mainDO.setAvailable("TRUE");
// 业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("RepleinmentRecord");
mainDO.setToLocationTypes(businesstypeDO.getInLocationTypes());
mainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDO.setToAreaCodes(businesstypeDO.getInAreaCodes());
mainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
mainDO.setOutTransactionType(businesstypeDO.getOutTransactionType());
mainDO.setInTransactionType(businesstypeDO.getInTransactionType());
mainDO.setBusinessType(businesstypeDO.getCode());
// 接口类型
RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("RepleinmentRecord");
mainDO.setInterfaceType(recordsettingDO.getInterfaceType());
issueRecordMainMapper.insert(mainDO);
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for (IssueRecordDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDO.getId());
detailDO.setNumber(number);
LocationDO locationDOFrom = locationService.selectLocation(detailDO.getFromLocationCode());
if(locationDOFrom != null) {
detailDO.setFromAreaCode(locationDOFrom.getAreaCode());
detailDO.setFromLocationGroupCode(locationDOFrom.getLocationGroupCode());
} else {
throw exception(LOCATION_NOT_EXISTS);
}
LocationDO locationDOTo = locationService.selectLocation(detailDO.getToLocationCode());
if(locationDOTo != null) {
detailDO.setToAreaCode(locationDOTo.getAreaCode());
detailDO.setToLocationGroupCode(locationDOTo.getLocationGroupCode());
} else {
throw exception(LOCATION_NOT_EXISTS);
}
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode());
if (itembasicDO != null) {
detailDO.setItemName(itembasicDO.getName());
detailDO.setItemDesc1(itembasicDO.getDesc1());
detailDO.setItemDesc2(itembasicDO.getDesc2());
detailDO.setProjectCode(itembasicDO.getProject());
detailDO.setUom(itembasicDO.getUom());
} else {
throw exception(ITEMBASIC_NOT_EXISTS);
}
// 库存事务——入
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
BeanUtils.copyProperties(detailDO, transactionCreateReqVOIn);
transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction());
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode());
transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId()));
transactionCreateReqVOIn.setBatch(detailDO.getToBatch());
transactionCreateReqVOIn.setPackingNumber(detailDO.getToPackingNumber());
transactionCreateReqVOIn.setInventoryStatus(detailDO.getInventoryStatus());
transactionCreateReqVOIn.setLocationCode(detailDO.getToLocationCode());
transactionCreateReqVOIn.setSinglePrice(BigDecimal.ZERO);
transactionCreateReqVOIn.setAmount(BigDecimal.ZERO);
transactionCreateReqVOIn.setWarehouseCode(mainDO.getFromWarehouseCode());
transactionCreateReqVOIn.setRecordNumber(number);
transactionCreateReqVOIn.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVOIn);
// 库存事务——出
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(detailDO, transactionCreateReqVOOut);
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType());
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setRecordNumber(number);
transactionCreateReqVOOut.setInventoryStatus(detailDO.getInventoryStatus());
transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId()));
transactionCreateReqVOOut.setBatch(detailDO.getFromBatch());
transactionCreateReqVOOut.setPackingNumber(detailDO.getFromPackingNumber());
transactionCreateReqVOOut.setLocationCode(detailDO.getFromLocationCode());
transactionCreateReqVOOut.setSinglePrice(BigDecimal.ZERO);
transactionCreateReqVOOut.setAmount(BigDecimal.ZERO);
transactionCreateReqVOOut.setWarehouseCode(mainDO.getFromWarehouseCode());
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVOOut);
}
issueRecordDetailMapper.insertBatch(subDOList);
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//增加操作记录
trendsApi.createTrends(mainDO.getId(), "issueRecordMain", "增加了发料记录", TrendsTypeEnum.CREATE);
// 返回
return issueRecordMain.getId();
return mainDO.getNumber();
}
@Override

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainService.java

@ -25,7 +25,7 @@ public interface ProductdismantleRecordMainService {
* @param createReqVO 创建信息
* @return 编号
*/
Long createProductdismantleRecordMain(@Valid ProductdismantleRecordMainCreateReqVO createReqVO);
String createProductdismantleRecordMain(@Valid ProductdismantleRecordMainCreateReqVO createReqVO);
/**
* 更新制品拆解记录主

170
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainServiceImpl.java

@ -1,23 +1,59 @@
package com.win.module.wms.service.productdismantleRecord;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
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.productdismantleRecord.vo.ProductdismantleRecordMainCreateReqVO;
import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordMainExportReqVO;
import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordMainPageReqVO;
import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordMainUpdateReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.productdismantleRecord.ProductdismantleRecordDetailaConvert;
import com.win.module.wms.convert.productdismantleRecord.ProductdismantleRecordMainConvert;
import com.win.module.wms.convert.repleinshRecord.RepleinshRecordDetailConvert;
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.location.LocationDO;
import com.win.module.wms.dal.dataobject.productdismantleRecord.ProductdismantleRecordDetailaDO;
import com.win.module.wms.dal.dataobject.productdismantleRecord.ProductdismantleRecordDetailbDO;
import com.win.module.wms.dal.dataobject.productdismantleRecord.ProductdismantleRecordMainDO;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailaDO;
import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailbDO;
import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO;
import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO;
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.productdismantleRecord.ProductdismantleRecordDetailaMapper;
import com.win.module.wms.dal.mysql.productdismantleRecord.ProductdismantleRecordDetailbMapper;
import com.win.module.wms.dal.mysql.productdismantleRecord.ProductdismantleRecordMainMapper;
import com.win.module.wms.dal.mysql.productdismantleRequest.ProductdismantleRequestDetailbMapper;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.recordsetting.RecordsettingService;
import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.service.workstation.WorkstationService;
import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTDISMANTLE_RECORD_MAIN_NOT_EXISTS;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 制品拆解记录主 Service 实现类
@ -28,16 +64,140 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTDISMANTLE_RECOR
@Validated
public class ProductdismantleRecordMainServiceImpl implements ProductdismantleRecordMainService {
@Resource
private ProductdismantleRecordDetailbMapper productdismantleRecordDetailbMapper;
@Resource
private WorkstationService workstationService;
@Resource
private ProductdismantleRequestDetailbMapper productdismantleRequestDetailbMapper;
@Resource
private ProductdismantleRecordDetailaMapper productdismantleRecordDetailaMapper;
@Resource
private TransactionService transactionService;
@Resource
private ItembasicService itembasicService;
@Resource
private LocationService locationService;
@Resource
private RecordsettingService recordsettingService;
@Resource
private TrendsApi trendsApi;
@Resource
private JobUtils jobUtils;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private AdminUserApi userApi;
@Resource
private ProductdismantleRecordMainMapper productdismantleRecordMainMapper;
@Override
public Long createProductdismantleRecordMain(ProductdismantleRecordMainCreateReqVO createReqVO) {
@Transactional
public String createProductdismantleRecordMain(ProductdismantleRecordMainCreateReqVO createReqVO) {
// 插入
ProductdismantleRecordMainDO productdismantleRecordMain = ProductdismantleRecordMainConvert.INSTANCE.convert(createReqVO);
productdismantleRecordMainMapper.insert(productdismantleRecordMain);
AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId());
ProductdismantleRecordMainDO mainDO = ProductdismantleRecordMainConvert.INSTANCE.convert(createReqVO);
List<ProductdismantleRecordDetailaDO> subDOList = ProductdismantleRecordDetailaConvert.INSTANCE.convertList03(createReqVO.getSubList());
String number = serialNumberApi.generateCode(RuleCodeEnum.REPLEINMENT_RECORD.getCode());
mainDO.setNumber(number);
mainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId()));
mainDO.setExecuteTime(LocalDateTime.now());
mainDO.setActiveDate(LocalDateTime.now());
mainDO.setAvailable("TRUE");
// 业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductDisassemble");
mainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
mainDO.setOutTransactionType(businesstypeDO.getOutTransactionType());
mainDO.setInTransactionType(businesstypeDO.getInTransactionType());
mainDO.setBusinessType(businesstypeDO.getCode());
// 接口类型
RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("ProductDisassembleRecord");
mainDO.setInterfaceType(recordsettingDO.getInterfaceType());
productdismantleRecordMainMapper.insert(mainDO);
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
// 子表b 集合
List<ProductdismantleRecordDetailbDO> detailbDOList = new ArrayList<>();
for(ProductdismantleRecordDetailaDO productdismantleRecordDetailaDO : subDOList) {
LocationDO locationDO = locationService.selectLocation(productdismantleRecordDetailaDO.getFromLocationCode());
productdismantleRecordDetailaDO.setFromAreaCode(locationDO.getAreaCode());
productdismantleRecordDetailaDO.setFromLocationGroupCode(locationDO.getLocationGroupCode());
productdismantleRecordDetailaDO.setMasterId(mainDO.getId());
productdismantleRecordDetailaMapper.insert(productdismantleRecordDetailaDO);
//添加库存事务list
// 出动作
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(productdismantleRecordDetailaDO, transactionCreateReqVOOut);
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType());
transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setBusinessType(mainDO.getBusinessType());
transactionCreateReqVOOut.setOwnerCode(productdismantleRecordDetailaDO.getFromOwnerCode());
transactionCreateReqVOOut.setRecordNumber(number);
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOOut.setPackingNumber(productdismantleRecordDetailaDO.getPackingNumber());
transactionCreateReqVOOut.setBatch(productdismantleRecordDetailaDO.getBatch());
transactionCreateReqVOOut.setContainerNumber(productdismantleRecordDetailaDO.getContainerNumber());
transactionCreateReqVOOut.setAmount(BigDecimal.ZERO);
transactionCreateReqVOOut.setWarehouseCode(mainDO.getFromWarehouseCode());
transactionCreateReqVOOut.setLocationCode(productdismantleRecordDetailaDO.getFromLocationCode());
transactionCreateReqVOList.add(transactionCreateReqVOOut);
// 根据申请子表a id 查询 申请 子表b
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("master_id", productdismantleRecordDetailaDO.getId().toString());
List<ProductdismantleRequestDetailbDO> productdismantleRequestDetailbDOList = productdismantleRequestDetailbMapper.selectList(queryWrapper);
for(ProductdismantleRequestDetailbDO productdismantleRequestDetailbDO:productdismantleRequestDetailbDOList) {
ProductdismantleRecordDetailbDO productdismantleRecordDetailbDO = new ProductdismantleRecordDetailbDO();
BeanUtils.copyProperties(productdismantleRequestDetailbDO, productdismantleRecordDetailbDO);
productdismantleRecordDetailbDO.setMasterId(productdismantleRecordDetailaDO.getId());
productdismantleRecordDetailbDO.setNumber(productdismantleRecordDetailaDO.getNumber());
productdismantleRecordDetailbDO.setBatch("000000");
productdismantleRecordDetailbDO.setPackingNumber("");
productdismantleRecordDetailbDO.setInventoryStatus("OK");
// 根据成品物品 对应工位 查询 原料库位
WorkstationDO workstationDO = workstationService.selectWorkstationExist(productdismantleRecordDetailaDO.getWorkStationCode(),mainDO.getWorkshopCode(),productdismantleRecordDetailaDO.getProductionLineCode());
productdismantleRecordDetailbDO.setToLocationCode(workstationDO.getRawLocationCode());
LocationDO locationDODetailb = locationService.selectLocation(workstationDO.getRawLocationCode());
productdismantleRecordDetailbDO.setToAreaCode(locationDODetailb.getAreaCode());
productdismantleRecordDetailbDO.setToLocationGroupCode(locationDODetailb.getLocationGroupCode());
productdismantleRecordDetailbDO.setId(null);
productdismantleRecordDetailbDO.setCreateTime(null);
productdismantleRecordDetailbDO.setCreator(null);
productdismantleRecordDetailbDO.setUpdateTime(null);
productdismantleRecordDetailbDO.setUpdater(null);
detailbDOList.add(productdismantleRecordDetailbDO);
//添加库存事务list
// 入动作
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(productdismantleRecordDetailbDO, transactionCreateReqVO);
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVO.setBusinessType(mainDO.getBusinessType());
transactionCreateReqVO.setOwnerCode("");
transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setId(null);
transactionCreateReqVO.setPackingNumber(productdismantleRecordDetailbDO.getPackingNumber());
transactionCreateReqVO.setBatch(productdismantleRecordDetailbDO.getBatch());
transactionCreateReqVO.setContainerNumber("");
transactionCreateReqVO.setAmount(BigDecimal.ZERO);
transactionCreateReqVO.setWarehouseCode(mainDO.getFromWarehouseCode());
transactionCreateReqVO.setLocationCode(productdismantleRecordDetailbDO.getToLocationCode());
transactionCreateReqVOList.add(transactionCreateReqVO);
}
}
if (detailbDOList != null && detailbDOList.size() > 0) {
productdismantleRecordDetailbMapper.insertBatch(detailbDOList);
}
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//增加操作记录
trendsApi.createTrends(mainDO.getId(), "productdismantleRecordMain", "增加了制品拆解记录", TrendsTypeEnum.CREATE);
// 返回
return productdismantleRecordMain.getId();
return mainDO.getNumber();
}
@Override

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRecord/ProductionreturnRecordMainService.java

@ -26,7 +26,7 @@ public interface ProductionreturnRecordMainService {
* @param createReqVO 创建信息
* @return 编号
*/
Long createProductionreturnRecordMain(@Valid ProductionreturnRecordMainCreateReqVO createReqVO);
String createProductionreturnRecordMain(@Valid ProductionreturnRecordMainCreateReqVO createReqVO);
/**
* 更新生产退料记录主

162
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRecord/ProductionreturnRecordMainServiceImpl.java

@ -2,23 +2,52 @@ package com.win.module.wms.service.productionreturnRecord;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
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.productionreturnRecord.vo.ProductionreturnRecordMainCreateReqVO;
import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordMainExportReqVO;
import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordMainPageReqVO;
import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordMainUpdateReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.issueRecord.IssueRecordDetailConvert;
import com.win.module.wms.convert.productionreturnRecord.ProductionreturnRecordDetailConvert;
import com.win.module.wms.convert.productionreturnRecord.ProductionreturnRecordMainConvert;
import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.productionreturnRecord.ProductionreturnRecordDetailDO;
import com.win.module.wms.dal.dataobject.productionreturnRecord.ProductionreturnRecordMainDO;
import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO;
import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.mysql.productionreturnRecord.ProductionreturnRecordDetailMapper;
import com.win.module.wms.dal.mysql.productionreturnRecord.ProductionreturnRecordMainMapper;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.recordsetting.RecordsettingService;
import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTIONRETURN_RECORD_MAIN_NOT_EXISTS;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 生产退料记录主 Service 实现类
@ -29,16 +58,139 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTIONRETURN_RECOR
@Validated
public class ProductionreturnRecordMainServiceImpl implements ProductionreturnRecordMainService {
@Resource
private ProductionreturnRecordDetailMapper productionreturnRecordDetailMapper;
@Resource
private TransactionService transactionService;
@Resource
private ItembasicService itembasicService;
@Resource
private LocationService locationService;
@Resource
private TrendsApi trendsApi;
@Resource
private JobUtils jobUtils;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private AdminUserApi userApi;
@Resource
private RecordsettingService recordsettingService;
@Resource
private ProductionreturnRecordMainMapper productionreturnRecordMainMapper;
@Override
public Long createProductionreturnRecordMain(ProductionreturnRecordMainCreateReqVO createReqVO) {
@Transactional
public String createProductionreturnRecordMain(ProductionreturnRecordMainCreateReqVO createReqVO) {
// 插入
ProductionreturnRecordMainDO productionreturnRecordMain = ProductionreturnRecordMainConvert.INSTANCE.convert(createReqVO);
productionreturnRecordMainMapper.insert(productionreturnRecordMain);
AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId());
ProductionreturnRecordMainDO mainDO = ProductionreturnRecordMainConvert.INSTANCE.convert(createReqVO);
List<ProductionreturnRecordDetailDO> subDOList = ProductionreturnRecordDetailConvert.INSTANCE.convertList03(createReqVO.getSubList());
// 判断是合格还是隔离
BusinesstypeDO businesstypeDO;
String number;
// 合格
if (mainDO.getBusinessType().equals("ReturnToStore")) {
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ReturnToStoreRecord");
number = serialNumberApi.generateCode(RuleCodeEnum.RETURN_TO_STORE_REQUEST.getCode());
} else { // 隔离
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ReturnToHoldRecord");
number = serialNumberApi.generateCode(RuleCodeEnum.RETURN_TO_HOLD.getCode());
}
mainDO.setNumber(number);
mainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId()));
mainDO.setExecuteTime(LocalDateTime.now());
mainDO.setActiveDate(LocalDateTime.now());
mainDO.setAvailable("TRUE");
// 业务类型
mainDO.setToLocationTypes(businesstypeDO.getInLocationTypes());
mainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDO.setToAreaCodes(businesstypeDO.getInAreaCodes());
mainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
mainDO.setOutTransactionType(businesstypeDO.getOutTransactionType());
mainDO.setInTransactionType(businesstypeDO.getInTransactionType());
mainDO.setBusinessType(businesstypeDO.getCode());
// 接口类型
RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("ProductionReturnRecord");
mainDO.setInterfaceType(recordsettingDO.getInterfaceType());
productionreturnRecordMainMapper.insert(mainDO);
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for (ProductionreturnRecordDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDO.getId());
detailDO.setNumber(number);
LocationDO locationDOFrom = locationService.selectLocation(detailDO.getFromLocationCode());
if(locationDOFrom != null) {
detailDO.setFromAreaCode(locationDOFrom.getAreaCode());
detailDO.setFromLocationGroupCode(locationDOFrom.getLocationGroupCode());
} else {
throw exception(LOCATION_NOT_EXISTS);
}
LocationDO locationDOTo = locationService.selectLocation(detailDO.getToLocationCode());
if(locationDOTo != null) {
detailDO.setToAreaCode(locationDOTo.getAreaCode());
detailDO.setToLocationGroupCode(locationDOTo.getLocationGroupCode());
} else {
throw exception(LOCATION_NOT_EXISTS);
}
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode());
if (itembasicDO != null) {
detailDO.setItemName(itembasicDO.getName());
detailDO.setItemDesc1(itembasicDO.getDesc1());
detailDO.setItemDesc2(itembasicDO.getDesc2());
detailDO.setProjectCode(itembasicDO.getProject());
detailDO.setUom(itembasicDO.getUom());
} else {
throw exception(ITEMBASIC_NOT_EXISTS);
}
// 库存事务——入
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
BeanUtils.copyProperties(detailDO, transactionCreateReqVOIn);
transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction());
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode());
transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId()));
transactionCreateReqVOIn.setBatch(detailDO.getToBatch());
transactionCreateReqVOIn.setPackingNumber(detailDO.getToPackingNumber());
transactionCreateReqVOIn.setInventoryStatus(detailDO.getInventoryStatus());
transactionCreateReqVOIn.setLocationCode(detailDO.getToLocationCode());
transactionCreateReqVOIn.setSinglePrice(BigDecimal.ZERO);
transactionCreateReqVOIn.setAmount(BigDecimal.ZERO);
transactionCreateReqVOIn.setWarehouseCode(mainDO.getFromWarehouseCode());
transactionCreateReqVOIn.setRecordNumber(number);
transactionCreateReqVOIn.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVOIn);
// 库存事务——出
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(detailDO, transactionCreateReqVOOut);
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType());
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setRecordNumber(number);
transactionCreateReqVOOut.setInventoryStatus(detailDO.getInventoryStatus());
transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId()));
transactionCreateReqVOOut.setBatch(detailDO.getFromBatch());
transactionCreateReqVOOut.setPackingNumber(detailDO.getFromPackingNumber());
transactionCreateReqVOOut.setLocationCode(detailDO.getFromLocationCode());
transactionCreateReqVOOut.setSinglePrice(BigDecimal.ZERO);
transactionCreateReqVOOut.setAmount(BigDecimal.ZERO);
transactionCreateReqVOOut.setWarehouseCode(mainDO.getFromWarehouseCode());
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVOOut);
}
productionreturnRecordDetailMapper.insertBatch(subDOList);
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//增加操作记录
if (mainDO.getBusinessType().equals("ReturnToStore")) {
trendsApi.createTrends(mainDO.getId(), "productionreturnRecordMain", "增加了合格退料记录", TrendsTypeEnum.CREATE);
} else {
trendsApi.createTrends(mainDO.getId(), "productionreturnRecordMain", "增加了隔离退料记录", TrendsTypeEnum.CREATE);
}
// 返回
return productionreturnRecordMain.getId();
return mainDO.getNumber();
}
@Override

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRecord/ProductputawayRecordMainService.java

@ -25,7 +25,7 @@ public interface ProductputawayRecordMainService {
* @param createReqVO 创建信息
* @return 编号
*/
Long createProductputawayRecordMain(@Valid ProductputawayRecordMainCreateReqVO createReqVO);
String createProductputawayRecordMain(@Valid ProductputawayRecordMainCreateReqVO createReqVO);
/**
* 更新制品上架记录主

146
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRecord/ProductputawayRecordMainServiceImpl.java

@ -2,22 +2,48 @@ package com.win.module.wms.service.productputawayRecord;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
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.productputawayRecord.vo.ProductputawayRecordMainCreateReqVO;
import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordMainExportReqVO;
import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordMainPageReqVO;
import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordMainUpdateReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.productputawayRecord.ProductputawayRecordDetailConvert;
import com.win.module.wms.convert.productputawayRecord.ProductputawayRecordMainConvert;
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.location.LocationDO;
import com.win.module.wms.dal.dataobject.productputawayRecord.ProductputawayRecordDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRecord.ProductputawayRecordMainDO;
import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.mysql.productputawayRecord.ProductputawayRecordDetailMapper;
import com.win.module.wms.dal.mysql.productputawayRecord.ProductputawayRecordMainMapper;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.recordsetting.RecordsettingService;
import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTPUTAWAY_RECORD_MAIN_NOT_EXISTS;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 制品上架记录主 Service 实现类
@ -28,16 +54,126 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTPUTAWAY_RECORD_
@Validated
public class ProductputawayRecordMainServiceImpl implements ProductputawayRecordMainService {
@Resource
private ProductputawayRecordDetailMapper productputawayRecordDetailMapper;
@Resource
private TransactionService transactionService;
@Resource
private ItembasicService itembasicService;
@Resource
private LocationService locationService;
@Resource
private RecordsettingService recordsettingService;
@Resource
private TrendsApi trendsApi;
@Resource
private JobUtils jobUtils;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private AdminUserApi userApi;
@Resource
private ProductputawayRecordMainMapper productputawayRecordMainMapper;
@Override
public Long createProductputawayRecordMain(ProductputawayRecordMainCreateReqVO createReqVO) {
@Transactional
public String createProductputawayRecordMain(ProductputawayRecordMainCreateReqVO createReqVO) {
// 插入
ProductputawayRecordMainDO productputawayRecordMain = ProductputawayRecordMainConvert.INSTANCE.convert(createReqVO);
productputawayRecordMainMapper.insert(productputawayRecordMain);
AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId());
ProductputawayRecordMainDO mainDO = ProductputawayRecordMainConvert.INSTANCE.convert(createReqVO);
List<ProductputawayRecordDetailDO> subDOList = ProductputawayRecordDetailConvert.INSTANCE.convertList03(createReqVO.getSubList());
String number = serialNumberApi.generateCode(RuleCodeEnum.REPLEINMENT_RECORD.getCode());
mainDO.setNumber(number);
mainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId()));
mainDO.setExecuteTime(LocalDateTime.now());
mainDO.setActiveDate(LocalDateTime.now());
mainDO.setAvailable("TRUE");
// 业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRecord");
mainDO.setToLocationTypes(businesstypeDO.getInLocationTypes());
mainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDO.setToAreaCodes(businesstypeDO.getInAreaCodes());
mainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
mainDO.setOutTransactionType(businesstypeDO.getOutTransactionType());
mainDO.setInTransactionType(businesstypeDO.getInTransactionType());
mainDO.setBusinessType(businesstypeDO.getCode());
// 接口类型
RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("MaterialReturnRecord");
mainDO.setInterfaceType(recordsettingDO.getInterfaceType());
productputawayRecordMainMapper.insert(mainDO);
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for (ProductputawayRecordDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDO.getId());
detailDO.setNumber(number);
LocationDO locationDOFrom = locationService.selectLocation(detailDO.getFromLocationCode());
if(locationDOFrom != null) {
detailDO.setFromAreaCode(locationDOFrom.getAreaCode());
detailDO.setFromLocationGroupCode(locationDOFrom.getLocationGroupCode());
} else {
throw exception(LOCATION_NOT_EXISTS);
}
LocationDO locationDOTo = locationService.selectLocation(detailDO.getToLocationCode());
if(locationDOTo != null) {
detailDO.setToAreaCode(locationDOTo.getAreaCode());
detailDO.setToLocationGroupCode(locationDOTo.getLocationGroupCode());
} else {
throw exception(LOCATION_NOT_EXISTS);
}
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode());
if (itembasicDO != null) {
detailDO.setItemName(itembasicDO.getName());
detailDO.setItemDesc1(itembasicDO.getDesc1());
detailDO.setItemDesc2(itembasicDO.getDesc2());
detailDO.setProjectCode(itembasicDO.getProject());
detailDO.setUom(itembasicDO.getUom());
} else {
throw exception(ITEMBASIC_NOT_EXISTS);
}
// 库存事务——入
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
BeanUtils.copyProperties(detailDO, transactionCreateReqVOIn);
transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction());
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode());
transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId()));
transactionCreateReqVOIn.setBatch(detailDO.getToBatch());
transactionCreateReqVOIn.setPackingNumber(detailDO.getToPackingNumber());
transactionCreateReqVOIn.setInventoryStatus(detailDO.getInventoryStatus());
transactionCreateReqVOIn.setLocationCode(detailDO.getToLocationCode());
transactionCreateReqVOIn.setSinglePrice(BigDecimal.ZERO);
transactionCreateReqVOIn.setAmount(BigDecimal.ZERO);
transactionCreateReqVOIn.setWarehouseCode(mainDO.getFromWarehouseCode());
transactionCreateReqVOIn.setRecordNumber(number);
transactionCreateReqVOIn.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVOIn);
// 库存事务——出
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(detailDO, transactionCreateReqVOOut);
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType());
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setRecordNumber(number);
transactionCreateReqVOOut.setInventoryStatus(detailDO.getInventoryStatus());
transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId()));
transactionCreateReqVOOut.setBatch(detailDO.getFromBatch());
transactionCreateReqVOOut.setPackingNumber(detailDO.getFromPackingNumber());
transactionCreateReqVOOut.setLocationCode(detailDO.getFromLocationCode());
transactionCreateReqVOOut.setSinglePrice(BigDecimal.ZERO);
transactionCreateReqVOOut.setAmount(BigDecimal.ZERO);
transactionCreateReqVOOut.setWarehouseCode(mainDO.getFromWarehouseCode());
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVOOut);
}
productputawayRecordDetailMapper.insertBatch(subDOList);
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//增加操作记录
trendsApi.createTrends(mainDO.getId(), "productputawayRecordMain", "增加了制品上架记录", TrendsTypeEnum.CREATE);
// 返回
return productputawayRecordMain.getId();
return mainDO.getNumber();
}
@Override

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestDetailServiceImpl.java

@ -98,10 +98,8 @@ public class ProductputawayRequestDetailServiceImpl implements ProductputawayReq
return productputawayRequestDetailDO;
}
public String isqty(BigDecimal qty1, BigDecimal qty2) {
if(qty1.compareTo(qty2) < 0){
return "ture";
} else {
public void isqty(BigDecimal qty1, BigDecimal qty2) {
if(qty1.compareTo(qty2) == 1){
throw exception(QTY_ERRORR,qty2,qty1);
}
}

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

@ -294,10 +294,8 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
}
}
public String isqty(BigDecimal qty1, BigDecimal qty2) {
if(qty1.compareTo(qty2) < 0){
return "ture";
} else {
public void isqty(BigDecimal qty1, BigDecimal qty2) {
if(qty1.compareTo(qty2) == 1){
throw exception(QTY_ERRORR,qty2,qty1);
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainService.java

@ -25,7 +25,7 @@ public interface ProductreceiptRecordMainService {
* @param createReqVO 创建信息
* @return 编号
*/
Long createProductreceiptRecordMain(@Valid ProductreceiptRecordMainCreateReqVO createReqVO);
String createProductreceiptRecordMain(@Valid ProductreceiptRecordMainCreateReqVO createReqVO);
/**
* 更新制品收货记录主

126
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainServiceImpl.java

@ -2,23 +2,52 @@ package com.win.module.wms.service.productreceiptRecord;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
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.productreceiptRecord.vo.ProductreceiptRecordMainCreateReqVO;
import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordMainExportReqVO;
import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordMainPageReqVO;
import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordMainUpdateReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.productreceiptRecord.ProductreceiptRecordDetailConvert;
import com.win.module.wms.convert.productreceiptRecord.ProductreceiptRecordMainConvert;
import com.win.module.wms.convert.repleinshRecord.RepleinshRecordDetailConvert;
import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO;
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.location.LocationDO;
import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordDetailDO;
import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordMainDO;
import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO;
import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordDetailMapper;
import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordMainMapper;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.productreceiptJob.ProductreceiptJobMainService;
import com.win.module.wms.service.recordsetting.RecordsettingService;
import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTRECEIPT_RECORD_MAIN_NOT_EXISTS;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 制品收货记录主 Service 实现类
@ -29,16 +58,103 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTRECEIPT_RECORD_
@Validated
public class ProductreceiptRecordMainServiceImpl implements ProductreceiptRecordMainService {
@Resource
private ProductreceiptJobMainService productreceiptJobMainService;
@Resource
private ProductreceiptRecordDetailMapper productreceiptRecordDetailMapper;
@Resource
private TransactionService transactionService;
@Resource
private ItembasicService itembasicService;
@Resource
private LocationService locationService;
@Resource
private RecordsettingService recordsettingService;
@Resource
private TrendsApi trendsApi;
@Resource
private JobUtils jobUtils;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private AdminUserApi userApi;
@Resource
private ProductreceiptRecordMainMapper productreceiptRecordMainMapper;
@Override
public Long createProductreceiptRecordMain(ProductreceiptRecordMainCreateReqVO createReqVO) {
@Transactional
public String createProductreceiptRecordMain(ProductreceiptRecordMainCreateReqVO createReqVO) {
// 插入
ProductreceiptRecordMainDO productreceiptRecordMain = ProductreceiptRecordMainConvert.INSTANCE.convert(createReqVO);
productreceiptRecordMainMapper.insert(productreceiptRecordMain);
AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId());
ProductreceiptRecordMainDO mainDO = ProductreceiptRecordMainConvert.INSTANCE.convert(createReqVO);
List<ProductreceiptRecordDetailDO> subDOList = ProductreceiptRecordDetailConvert.INSTANCE.convertList03(createReqVO.getSubList());
String number = serialNumberApi.generateCode(RuleCodeEnum.REPLEINMENT_RECORD.getCode());
mainDO.setNumber(number);
mainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId()));
mainDO.setExecuteTime(LocalDateTime.now());
mainDO.setActiveDate(LocalDateTime.now());
mainDO.setAvailable("TRUE");
// 业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductReceiptRecord");
mainDO.setToLocationTypes(businesstypeDO.getInLocationTypes());
mainDO.setToAreaCodes(businesstypeDO.getInAreaCodes());
mainDO.setOutTransactionType(businesstypeDO.getOutTransactionType());
mainDO.setInTransactionType(businesstypeDO.getInTransactionType());
mainDO.setBusinessType(businesstypeDO.getCode());
// 接口类型
RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("ProductPutawayRecord");
mainDO.setInterfaceType(recordsettingDO.getInterfaceType());
productreceiptRecordMainMapper.insert(mainDO);
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for (ProductreceiptRecordDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDO.getId());
detailDO.setNumber(number);
LocationDO locationDOTo = locationService.selectLocation(detailDO.getToLocationCode());
if(locationDOTo != null) {
detailDO.setToAreaCode(locationDOTo.getAreaCode());
detailDO.setToLocationGroupCode(locationDOTo.getLocationGroupCode());
} else {
throw exception(LOCATION_NOT_EXISTS);
}
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode());
if (itembasicDO != null) {
detailDO.setItemName(itembasicDO.getName());
detailDO.setItemDesc1(itembasicDO.getDesc1());
detailDO.setItemDesc2(itembasicDO.getDesc2());
detailDO.setProjectCode(itembasicDO.getProject());
detailDO.setUom(itembasicDO.getUom());
} else {
throw exception(ITEMBASIC_NOT_EXISTS);
}
productreceiptRecordDetailMapper.insert(detailDO);
// 库存事务——入
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
BeanUtils.copyProperties(detailDO, transactionCreateReqVOIn);
transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction());
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode());
transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId()));
transactionCreateReqVOIn.setBatch(detailDO.getBatch());
transactionCreateReqVOIn.setPackingNumber(detailDO.getPackingNumber());
transactionCreateReqVOIn.setInventoryStatus(detailDO.getInventoryStatus());
transactionCreateReqVOIn.setLocationCode(detailDO.getToLocationCode());
transactionCreateReqVOIn.setSinglePrice(BigDecimal.ZERO);
transactionCreateReqVOIn.setAmount(BigDecimal.ZERO);
transactionCreateReqVOIn.setWarehouseCode(mainDO.getToWarehouseCode());
transactionCreateReqVOIn.setRecordNumber(number);
transactionCreateReqVOIn.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVOIn);
}
// 创建第二子表回冲记录及库存事务
productreceiptJobMainService.generateBackflushRecord(mainDO,subDOList);
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//增加操作记录
trendsApi.createTrends(mainDO.getId(), "repleinshRecordMain", "增加了补料记录", TrendsTypeEnum.CREATE);
// 返回
return productreceiptRecordMain.getId();
return mainDO.getNumber();
}
@Override

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

@ -419,11 +419,9 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
}
}
private String validatorQty(BigDecimal qty1, BigDecimal qty2) {
if (qty1.compareTo(qty2) < 0) {
return "ture";
} else {
throw exception(QTY_ERRORR, qty2, qty1);
private void validatorQty(BigDecimal qty1, BigDecimal qty2) {
if(qty1.compareTo(qty2) == 1){
throw exception(QTY_ERRORR,qty2,qty1);
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRecord/RepleinshRecordMainService.java

@ -21,7 +21,7 @@ public interface RepleinshRecordMainService {
* @param createReqVO 创建信息
* @return 编号
*/
Long createRepleinshRecordMain(@Valid RepleinshRecordMainCreateReqVO createReqVO);
String createRepleinshRecordMain(@Valid RepleinshRecordMainCreateReqVO createReqVO);
/**
* 获得用高级搜索户分页列表
*

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRecord/RepleinshRecordMainServiceImpl.java

@ -28,6 +28,8 @@ import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal;
@ -75,7 +77,8 @@ public class RepleinshRecordMainServiceImpl implements RepleinshRecordMainServic
private RepleinshRecordMainMapper repleinshRecordMainMapper;
@Override
public Long createRepleinshRecordMain(RepleinshRecordMainCreateReqVO createReqVO) {
@Transactional
public String createRepleinshRecordMain(RepleinshRecordMainCreateReqVO createReqVO) {
// 插入
AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId());
RepleinshRecordMainDO mainDO = RepleinshRecordMainConvert.INSTANCE.convert(createReqVO);
@ -112,7 +115,7 @@ public class RepleinshRecordMainServiceImpl implements RepleinshRecordMainServic
throw exception(LOCATION_NOT_EXISTS);
}
LocationDO locationDOTo = locationService.selectLocation(detailDO.getToLocationCode());
if(locationDOFrom != null) {
if(locationDOTo != null) {
detailDO.setToAreaCode(locationDOTo.getAreaCode());
detailDO.setToLocationGroupCode(locationDOTo.getLocationGroupCode());
} else {
@ -171,7 +174,7 @@ public class RepleinshRecordMainServiceImpl implements RepleinshRecordMainServic
//增加操作记录
trendsApi.createTrends(mainDO.getId(), "repleinshRecordMain", "增加了补料记录", TrendsTypeEnum.CREATE);
// 返回
return mainDO.getId();
return mainDO.getNumber();
}
@Override
public PageResult<RepleinshRecordMainDO> getRepleinshRecordMainSenior(CustomConditions conditions) {

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java

@ -547,6 +547,7 @@ public class RepleinshRequestMainServiceImpl implements RepleinshRequestMainServ
// 根据发料申请子表数据进行分析
detailDO.forEach(item -> {
// 根据批次策略/下架策略 返回 库存余额DO
// TODO: 任务 会多生成数据 查下原因
List<BalanceDO> balanceDOListJob = jobUtils.getBalanceByBatchOffShelf(item.getItemCode(),item.getInventoryStatus(),item.getProjectCode(),item.getQty(),mainDO.getFromLocationTypes());
// 根据 查询出所需数据 解析成 任务子表数据
balanceDOListJob.forEach(balanceDOItem -> {

Loading…
Cancel
Save