Browse Source

Merge remote-tracking branch 'origin/master'

master
刘忱 2 years ago
parent
commit
fea3c7cb68
  1. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/InventorymoveJobMainController.java
  2. 21
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailUpdateReqVO.java
  3. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobMainPageReqVO.java
  4. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainPageReqVO.java
  5. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainImportVO.java
  6. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/vo/TransferreceiptJobDetailUpdateReqVO.java
  7. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestDetailBaseVO.java
  8. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptJob/vo/UnplannedreceiptJobDetailUpdateReqVO.java
  9. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/recordsetting/RecordsettingDO.java
  10. 24
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveJob/InventorymoveJobMainMapper.java
  11. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRecord/InventorymoveRecordMainMapper.java
  12. 149
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java
  13. 33
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestMainServiceImpl.java
  14. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java
  15. 177
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainServiceImpl.java
  16. 26
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainServiceImpl.java
  17. 234
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java
  18. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainServiceImpl.java
  19. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java
  20. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobMainServiceImpl.java
  21. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobMainServiceImpl.java
  22. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptJob/UnplannedreceiptJobMainServiceImpl.java
  23. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/InventorymoveJobMainController.java

@ -5,9 +5,13 @@ import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.system.api.dept.DeptApi; import com.win.module.system.api.dept.DeptApi;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.deliverJob.vo.DeliverJobMainRespVO;
import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainExcelVO; import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainExcelVO;
import com.win.module.wms.convert.deliverJob.DeliverJobMainConvert;
import com.win.module.wms.convert.inventorymoveJob.InventorymoveJobDetailConvert; import com.win.module.wms.convert.inventorymoveJob.InventorymoveJobDetailConvert;
import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert; import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert;
import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobDetailDO;
import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobMainDO;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO; import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
@ -196,11 +200,13 @@ public class InventorymoveJobMainController {
if(result==null) { if(result==null) {
return success(result); return success(result);
}; };
InventorymoveJobDetailExportReqVO exportReqVO = new InventorymoveJobDetailExportReqVO(); // InventorymoveJobDetailExportReqVO exportReqVO = new InventorymoveJobDetailExportReqVO();
exportReqVO.setMasterId(result.getId()); // exportReqVO.setMasterId(result.getId());
List<InventorymoveJobDetailDO> inventorymoveJobDetailList = inventorymoveJobDetailService.getInventorymoveJobDetailList(exportReqVO); // List<InventorymoveJobDetailDO> inventorymoveJobDetailList = inventorymoveJobDetailService.getInventorymoveJobDetailList(exportReqVO);
List<InventorymoveJobDetailExcelVO> inventorymoveJobDetailExcelVOS = InventorymoveJobDetailConvert.INSTANCE.convertList02(inventorymoveJobDetailList); // List<InventorymoveJobDetailExcelVO> inventorymoveJobDetailExcelVOS = InventorymoveJobDetailConvert.INSTANCE.convertList02(inventorymoveJobDetailList);
result.setSubList(inventorymoveJobDetailExcelVOS); // result.setSubList(inventorymoveJobDetailExcelVOS);
List<InventorymoveJobDetailDO> subList = inventorymoveJobDetailService.selectList(id);
result.setSubList(subList);
return success(result); return success(result);
} }

21
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailUpdateReqVO.java

@ -3,6 +3,7 @@ package com.win.module.wms.controller.inventorymoveJob.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -11,6 +12,22 @@ import java.util.Map;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class InventorymoveJobDetailUpdateReqVO extends InventorymoveJobDetailBaseVO { public class InventorymoveJobDetailUpdateReqVO extends InventorymoveJobDetailBaseVO {
@Schema(description = "子表记录数据")
private List<Map<String,String>> recordList; @Schema(description = "实际收货数量")
private BigDecimal handleQty;
@Schema(description = "到包装")
private String toPackingNumber;
@Schema(description = "到器具")
private String toContainerNumber;
@Schema(description = "到批次")
private String toBatch;
@Schema(description = "到库存状态")
private String toInventoryStatus;
@Schema(description = "到库位")
private String toLocationCode;
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobMainPageReqVO.java

@ -136,4 +136,9 @@ public class InventorymoveJobMainPageReqVO extends PageParam {
@Schema(description = "允许修改箱码") @Schema(description = "允许修改箱码")
private String allowModifyPackingNumber; private String allowModifyPackingNumber;
@Schema(description = "从库存状态")
private String fromInventoryStatus;
@Schema(description = "到库存状态")
private String toInventoryStatus;
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainPageReqVO.java

@ -95,4 +95,9 @@ public class InventorymoveRecordMainPageReqVO extends PageParam {
@Schema(description = "主表id") @Schema(description = "主表id")
private String masterId; private String masterId;
@Schema(description = "从库存状态")
private String fromInventoryStatus;
@Schema(description = "到库存状态")
private String toInventoryStatus;
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainImportVO.java

@ -46,6 +46,10 @@ public class InventorymoveRequestMainImportVO {
@DictFormat(DictTypeConstants.INVENTORY_STATUS) @DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String fromInventoryStatus; private String fromInventoryStatus;
@ExcelProperty(value = "到库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String toInventoryStatus;
@ExcelProperty("从库位代码") @ExcelProperty("从库位代码")
private String fromLocationCode; private String fromLocationCode;

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/vo/TransferreceiptJobDetailUpdateReqVO.java

@ -3,6 +3,8 @@ package com.win.module.wms.controller.transferreceiptJob.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 调拨入库任务子更新 Request VO") @Schema(description = "管理后台 - 调拨入库任务子更新 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ -10,7 +12,7 @@ import lombok.*;
public class TransferreceiptJobDetailUpdateReqVO extends TransferreceiptJobDetailBaseVO { public class TransferreceiptJobDetailUpdateReqVO extends TransferreceiptJobDetailBaseVO {
@Schema(description = "实际收货数量") @Schema(description = "实际收货数量")
private String toQty; private BigDecimal handleQty;
@Schema(description = "到包装") @Schema(description = "到包装")
private String toPackingNumber; private String toPackingNumber;

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestDetailBaseVO.java

@ -93,4 +93,7 @@ public class TransferreceiptRequestDetailBaseVO {
@Schema(description = "主键ID") @Schema(description = "主键ID")
private Long masterId; private Long masterId;
@Schema(description = "到包装号")
private String toPackingNumber;
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/unplannedreceiptJob/vo/UnplannedreceiptJobDetailUpdateReqVO.java

@ -3,10 +3,14 @@ package com.win.module.wms.controller.unplannedreceiptJob.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 计划外入库任务子更新 Request VO") @Schema(description = "管理后台 - 计划外入库任务子更新 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class UnplannedreceiptJobDetailUpdateReqVO extends UnplannedreceiptJobDetailBaseVO { public class UnplannedreceiptJobDetailUpdateReqVO extends UnplannedreceiptJobDetailBaseVO {
@Schema(description = "实际数量")
private BigDecimal handleQty;
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/recordsetting/RecordsettingDO.java

@ -1,11 +1,7 @@
package com.win.module.wms.dal.dataobject.recordsetting; package com.win.module.wms.dal.dataobject.recordsetting;
import com.sun.xml.bind.v2.TODO;
import lombok.*; import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO; import com.win.framework.mybatis.core.dataobject.BaseDO;

24
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveJob/InventorymoveJobMainMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainExportReqVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainExportReqVO;
import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainPageReqVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainPageReqVO;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO;
import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordMainDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
import com.win.module.wms.dal.dataobject.productdismantleJob.ProductdismantleJobMainDO; import com.win.module.wms.dal.dataobject.productdismantleJob.ProductdismantleJobMainDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -23,8 +24,8 @@ import org.apache.ibatis.annotations.Mapper;
public interface InventorymoveJobMainMapper extends BaseMapperX<InventorymoveJobMainDO> { public interface InventorymoveJobMainMapper extends BaseMapperX<InventorymoveJobMainDO> {
default PageResult<InventorymoveJobMainDO> selectPage(InventorymoveJobMainPageReqVO reqVO) { default PageResult<InventorymoveJobMainDO> selectPage(InventorymoveJobMainPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<InventorymoveJobMainDO>() LambdaQueryWrapperX<InventorymoveJobMainDO> lambdaQueryWrapperX = new LambdaQueryWrapperX<>();
.eqIfPresent(InventorymoveJobMainDO::getRequestNumber, reqVO.getRequestNumber()) lambdaQueryWrapperX.eqIfPresent(InventorymoveJobMainDO::getRequestNumber, reqVO.getRequestNumber())
.eqIfPresent(InventorymoveJobMainDO::getUseOnTheWayLocation, reqVO.getUseOnTheWayLocation()) .eqIfPresent(InventorymoveJobMainDO::getUseOnTheWayLocation, reqVO.getUseOnTheWayLocation())
.eqIfPresent(InventorymoveJobMainDO::getFromWarehouseCode, reqVO.getFromWarehouseCode()) .eqIfPresent(InventorymoveJobMainDO::getFromWarehouseCode, reqVO.getFromWarehouseCode())
.betweenIfPresent(InventorymoveJobMainDO::getRequestTime, reqVO.getRequestTime()) .betweenIfPresent(InventorymoveJobMainDO::getRequestTime, reqVO.getRequestTime())
@ -62,11 +63,25 @@ public interface InventorymoveJobMainMapper extends BaseMapperX<InventorymoveJob
.eqIfPresent(InventorymoveJobMainDO::getAllowPartialComplete, reqVO.getAllowPartialComplete()) .eqIfPresent(InventorymoveJobMainDO::getAllowPartialComplete, reqVO.getAllowPartialComplete())
.eqIfPresent(InventorymoveJobMainDO::getAllowModifyBatch, reqVO.getAllowModifyBatch()) .eqIfPresent(InventorymoveJobMainDO::getAllowModifyBatch, reqVO.getAllowModifyBatch())
.eqIfPresent(InventorymoveJobMainDO::getAllowModifyPackingNumber, reqVO.getAllowModifyPackingNumber()) .eqIfPresent(InventorymoveJobMainDO::getAllowModifyPackingNumber, reqVO.getAllowModifyPackingNumber())
.orderByDesc(InventorymoveJobMainDO::getId)); .orderByDesc(InventorymoveJobMainDO::getId);
if("OK".equals(reqVO.getFromInventoryStatus()) && "HOLD".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorymoveJobMainDO::getBusinessType,"OkToHoldJob");
} else if("HOLD".equals(reqVO.getFromInventoryStatus()) && "OK".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorymoveJobMainDO::getBusinessType,"HoldToOkJob");
} else if("HOLD".equals(reqVO.getFromInventoryStatus()) && "SCRAP".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorymoveJobMainDO::getBusinessType,"HoldToScrapJob");
} else if("OK".equals(reqVO.getFromInventoryStatus()) && "SCRAP".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorymoveJobMainDO::getBusinessType,"OkToScrapJob");
} else if("SCRAP".equals(reqVO.getFromInventoryStatus()) && "HOLD".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorymoveJobMainDO::getBusinessType,"ScrapToHoldJob");
}
return selectPage(reqVO, lambdaQueryWrapperX);
} }
default PageResult<InventorymoveJobMainDO> selectSenior(CustomConditions conditions) { default PageResult<InventorymoveJobMainDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions)); return selectPage(conditions, QueryWrapperUtils.structure(conditions));
} }
default List<InventorymoveJobMainDO> selectList(InventorymoveJobMainExportReqVO reqVO) { default List<InventorymoveJobMainDO> selectList(InventorymoveJobMainExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<InventorymoveJobMainDO>() return selectList(new LambdaQueryWrapperX<InventorymoveJobMainDO>()
.eqIfPresent(InventorymoveJobMainDO::getRequestNumber, reqVO.getRequestNumber()) .eqIfPresent(InventorymoveJobMainDO::getRequestNumber, reqVO.getRequestNumber())
@ -111,7 +126,8 @@ public interface InventorymoveJobMainMapper extends BaseMapperX<InventorymoveJob
} }
/** /**
*根据类型数组查询任务数量 * 根据类型数组查询任务数量
*
* @param types * @param types
* @return * @return
*/ */

19
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRecord/InventorymoveRecordMainMapper.java

@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainExportReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainExportReqVO;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainPageReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainPageReqVO;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO;
import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordMainDO; import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordMainDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -21,8 +22,8 @@ import org.apache.ibatis.annotations.Mapper;
public interface InventorymoveRecordMainMapper extends BaseMapperX<InventorymoveRecordMainDO> { public interface InventorymoveRecordMainMapper extends BaseMapperX<InventorymoveRecordMainDO> {
default PageResult<InventorymoveRecordMainDO> selectPage(InventorymoveRecordMainPageReqVO reqVO) { default PageResult<InventorymoveRecordMainDO> selectPage(InventorymoveRecordMainPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<InventorymoveRecordMainDO>() LambdaQueryWrapperX<InventorymoveRecordMainDO> lambdaQueryWrapperX = new LambdaQueryWrapperX<>();
.eqIfPresent(InventorymoveRecordMainDO::getRequestNumber, reqVO.getRequestNumber()) lambdaQueryWrapperX.eqIfPresent(InventorymoveRecordMainDO::getRequestNumber, reqVO.getRequestNumber())
.eqIfPresent(InventorymoveRecordMainDO::getJobNumber, reqVO.getJobNumber()) .eqIfPresent(InventorymoveRecordMainDO::getJobNumber, reqVO.getJobNumber())
.eqIfPresent(InventorymoveRecordMainDO::getUseOnTheWayLocation, reqVO.getUseOnTheWayLocation()) .eqIfPresent(InventorymoveRecordMainDO::getUseOnTheWayLocation, reqVO.getUseOnTheWayLocation())
.eqIfPresent(InventorymoveRecordMainDO::getOutTransactionType, reqVO.getOutTransactionType()) .eqIfPresent(InventorymoveRecordMainDO::getOutTransactionType, reqVO.getOutTransactionType())
@ -46,7 +47,19 @@ public interface InventorymoveRecordMainMapper extends BaseMapperX<Inventorymove
.eqIfPresent(InventorymoveRecordMainDO::getToLocationTypes, reqVO.getToLocationTypes()) .eqIfPresent(InventorymoveRecordMainDO::getToLocationTypes, reqVO.getToLocationTypes())
.eqIfPresent(InventorymoveRecordMainDO::getToAreaCodes, reqVO.getToAreaCodes()) .eqIfPresent(InventorymoveRecordMainDO::getToAreaCodes, reqVO.getToAreaCodes())
.eqIfPresent(InventorymoveRecordMainDO::getAvailable, reqVO.getAvailable()) .eqIfPresent(InventorymoveRecordMainDO::getAvailable, reqVO.getAvailable())
.orderByDesc(InventorymoveRecordMainDO::getId)); .orderByDesc(InventorymoveRecordMainDO::getId);
if("OK".equals(reqVO.getFromInventoryStatus()) && "HOLD".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorymoveRecordMainDO::getBusinessType,"OkToHoldRecord");
} else if("HOLD".equals(reqVO.getFromInventoryStatus()) && "OK".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorymoveRecordMainDO::getBusinessType,"HoldToOkRecord");
} else if("HOLD".equals(reqVO.getFromInventoryStatus()) && "SCRAP".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorymoveRecordMainDO::getBusinessType,"HoldToScrapRecord");
} else if("OK".equals(reqVO.getFromInventoryStatus()) && "SCRAP".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorymoveRecordMainDO::getBusinessType,"OkToScrapRecord");
} else if("SCRAP".equals(reqVO.getFromInventoryStatus()) && "HOLD".equals(reqVO.getToInventoryStatus())) {
lambdaQueryWrapperX.eq(InventorymoveRecordMainDO::getBusinessType,"ScrapToHoldRecord");
}
return selectPage(reqVO, lambdaQueryWrapperX);
} }
default PageResult<InventorymoveRecordMainDO> selectSenior(CustomConditions conditions) { default PageResult<InventorymoveRecordMainDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions)); return selectPage(conditions, QueryWrapperUtils.structure(conditions));

149
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java

@ -2,6 +2,7 @@ package com.win.module.wms.service.customerreturnRequest;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.exceptions.UtilException; import cn.hutool.core.exceptions.UtilException;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.exception.ServiceException; import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
@ -65,6 +66,7 @@ import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap;
import java.util.List; import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
@ -147,7 +149,7 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
this.validateCustomerreturnRequestMainCreate(mainDO); this.validateCustomerreturnRequestMainCreate(mainDO);
List<CustomerreturnRequestDetailDO> subDOList = CustomerreturnRequestMainConvert.INSTANCE.convertList03(createReqVO.getSubList()); List<CustomerreturnRequestDetailDO> subDOList = CustomerreturnRequestMainConvert.INSTANCE.convertList03(createReqVO.getSubList());
for (CustomerreturnRequestDetailDO detailDO : subDOList) { for (CustomerreturnRequestDetailDO detailDO : subDOList) {
this.validateCustomerreturnRequestDetailCreate(mainDO,detailDO); this.validateCustomerreturnRequestDetailCreate(mainDO, detailDO);
} }
String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_REJECT_REQUEST.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_REJECT_REQUEST.getCode());
mainDO.setNumber(number); mainDO.setNumber(number);
@ -155,11 +157,12 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
requestStatusState.newObject(mainDO.getAutoCommit(), mainDO.getAutoAgree(), mainDO.getAutoExecute()); requestStatusState.newObject(mainDO.getAutoCommit(), mainDO.getAutoAgree(), mainDO.getAutoExecute());
mainDO.setStatus(requestStatusState.getState().getCode()); mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法 //调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, subDOList); this.generateJob(mainDO, subDOList);
} }
customerreturnRequestMainMapper.insert(mainDO); customerreturnRequestMainMapper.insert(mainDO);
for (CustomerreturnRequestDetailDO detailDO : subDOList) { for (CustomerreturnRequestDetailDO detailDO : subDOList) {
detailDO.setId(null);
detailDO.setMasterId(mainDO.getId()); detailDO.setMasterId(mainDO.getId());
detailDO.setNumber(number); detailDO.setNumber(number);
} }
@ -177,7 +180,7 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
CustomerreturnRequestMainDO updateObj = CustomerreturnRequestMainConvert.INSTANCE.convert(updateReqVO); CustomerreturnRequestMainDO updateObj = CustomerreturnRequestMainConvert.INSTANCE.convert(updateReqVO);
this.validateCustomerreturnRequestMainCreate(updateObj); this.validateCustomerreturnRequestMainCreate(updateObj);
//调用自动执行方法 //调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(updateObj.getStatus())) { if (RequestStatusEnum.HANDLING.getCode().equals(updateObj.getStatus())) {
this.generateJob(updateObj, customerreturnRequestDetailMapper.selectList(updateReqVO.getId())); this.generateJob(updateObj, customerreturnRequestDetailMapper.selectList(updateReqVO.getId()));
} }
customerreturnRequestMainMapper.updateById(updateObj); customerreturnRequestMainMapper.updateById(updateObj);
@ -262,7 +265,7 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
mainDo.setStatus(PlanStatusEnum.NEW.getCode()); mainDo.setStatus(PlanStatusEnum.NEW.getCode());
String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_REJECT_REQUEST.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_REJECT_REQUEST.getCode());
DeliverRecordMainDO deliverRecordMainDO = deliverRecordMainService.selectsMainRecordExist(mainDo.getDeliverRecordNumber()); DeliverRecordMainDO deliverRecordMainDO = deliverRecordMainService.selectsMainRecordExist(mainDo.getDeliverRecordNumber());
if(deliverRecordMainDO != null){ if (deliverRecordMainDO != null) {
mainDo.setFromWarehouseCode(deliverRecordMainDO.getToWarehouseCode()); mainDo.setFromWarehouseCode(deliverRecordMainDO.getToWarehouseCode());
mainDo.setCustomerDockCode(deliverRecordMainDO.getCustomerDockCode()); mainDo.setCustomerDockCode(deliverRecordMainDO.getCustomerDockCode());
} }
@ -274,7 +277,7 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
detailDO.setMasterId(mainDo.getId()); detailDO.setMasterId(mainDo.getId());
} }
//调用自动执行方法 //调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDo.getStatus())) { if (RequestStatusEnum.HANDLING.getCode().equals(mainDo.getStatus())) {
this.generateJob(mainDo, subDOList); this.generateJob(mainDo, subDOList);
} }
customerreturnRequestDetailMapper.insertBatch(subDOList); customerreturnRequestDetailMapper.insertBatch(subDOList);
@ -285,7 +288,7 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
private void generateJob(CustomerreturnRequestMainDO mainDO, List<CustomerreturnRequestDetailDO> detailDOList) { private void generateJob(CustomerreturnRequestMainDO mainDO, List<CustomerreturnRequestDetailDO> detailDOList) {
//跳过任务直接生成记录 //跳过任务直接生成记录
if("TRUE".equals(mainDO.getDirectCreateRecord())) { if ("TRUE".equals(mainDO.getDirectCreateRecord())) {
//如果直接生成记录 修改申请状态为已完成 //如果直接生成记录 修改申请状态为已完成
mainDO.setStatus("8"); mainDO.setStatus("8");
customerreturnRequestMainMapper.updateById(mainDO); customerreturnRequestMainMapper.updateById(mainDO);
@ -305,7 +308,7 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
customerreturnRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); customerreturnRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode());
CustomerreturnRecordMainDO recordMainDO = CustomerreturnRecordMainConvert.INSTANCE.convert(customerreturnRecordMainCreateReqVO); CustomerreturnRecordMainDO recordMainDO = CustomerreturnRecordMainConvert.INSTANCE.convert(customerreturnRecordMainCreateReqVO);
customerreturnRecordMainMapper.insert(recordMainDO); customerreturnRecordMainMapper.insert(recordMainDO);
for(CustomerreturnRequestDetailDO customerreturnRequestDetailDO : detailDOList) { for (CustomerreturnRequestDetailDO customerreturnRequestDetailDO : detailDOList) {
//记录子表数据 同名属性同名赋值 //记录子表数据 同名属性同名赋值
CustomerreturnRecordDetailCreateReqVO customerreturnRecordDetailCreateReqVO = new CustomerreturnRecordDetailCreateReqVO(); CustomerreturnRecordDetailCreateReqVO customerreturnRecordDetailCreateReqVO = new CustomerreturnRecordDetailCreateReqVO();
CustomerreturnRecordDetailDO recordDetailDO = CustomerreturnRecordDetailConvert.INSTANCE.convert(customerreturnRecordDetailCreateReqVO); CustomerreturnRecordDetailDO recordDetailDO = CustomerreturnRecordDetailConvert.INSTANCE.convert(customerreturnRecordDetailCreateReqVO);
@ -356,7 +359,7 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
customerreturnJobMainMapper.insert(customerreturnJobMainDO); customerreturnJobMainMapper.insert(customerreturnJobMainDO);
List<ExpectinCreateReqVO> expectinCreateReqVOList = new ArrayList<>(); List<ExpectinCreateReqVO> expectinCreateReqVOList = new ArrayList<>();
List<CustomerreturnJobDetailDO> customerreturnJobDetailDOList = new ArrayList<>(); List<CustomerreturnJobDetailDO> customerreturnJobDetailDOList = new ArrayList<>();
for(CustomerreturnRequestDetailDO customerreturnRequestDetailDO : detailDOList) { for (CustomerreturnRequestDetailDO customerreturnRequestDetailDO : detailDOList) {
//任务子表数据 同名属性同名赋值 //任务子表数据 同名属性同名赋值
CustomerreturnJobDetailDO customerreturnJobDetailDO = CustomerreturnJobDetailConvert.INSTANCE.convert(customerreturnRequestDetailDO); CustomerreturnJobDetailDO customerreturnJobDetailDO = CustomerreturnJobDetailConvert.INSTANCE.convert(customerreturnRequestDetailDO);
BeanUtils.copyProperties(customerreturnRequestDetailDO, customerreturnJobDetailDO); BeanUtils.copyProperties(customerreturnRequestDetailDO, customerreturnJobDetailDO);
@ -387,6 +390,7 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
/** /**
* 主表校验导入并赋值一些参数 * 主表校验导入并赋值一些参数
*
* @param mainDo * @param mainDo
* @return * @return
*/ */
@ -417,41 +421,41 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
/** /**
* 子表校验导入并赋值一些参数 * 子表校验导入并赋值一些参数
*
* @param detailDo * @param detailDo
* @return * @return
*/ */
private String validateCustomerreturnRequestDetailImport(CustomerreturnRequestDetailDO detailDo, CustomerreturnRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { private String validateCustomerreturnRequestDetailImport(CustomerreturnRequestDetailDO detailDo, CustomerreturnRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
String messageDetail = ""; String messageDetail = "";
// 校验物品基础信息
try { try {
validateDeliverRecordDetail(mainDo,detailDo); validateDeliverRecordDetail(mainDo, detailDo);
} catch (ServiceException ex) { } catch (ServiceException ex) {
messageDetail += ex.getMessage() + ","; messageDetail += ex.getMessage() + ",";
} }
try { try {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
if ( !detailDo.getUom().equals(itembasicDO.getUom())) { if (!detailDo.getUom().equals(itembasicDO.getUom())) {
messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + detailDo.getUom() + ","; messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + detailDo.getUom() + ",";
} }
} catch (ServiceException ex) { } catch (ServiceException ex) {
messageDetail += ex.getMessage() + ","; messageDetail += ex.getMessage() + ",";
} }
try { try {
if(!"".equals(detailDo.getFromLocationCode())){ if (!"".equals(detailDo.getFromLocationCode())) {
validatorIfInToLocationType(detailDo.getFromLocationCode(),businesstypeDO); validatorIfInToLocationType(detailDo.getFromLocationCode(), businesstypeDO);
} }
} catch (ServiceException ex) { } catch (ServiceException ex) {
messageDetail += ex.getMessage() + ","; messageDetail += ex.getMessage() + ",";
} }
try { try {
validatorIfInFromLocationType(detailDo.getToLocationCode(),businesstypeDO); validatorIfInFromLocationType(detailDo.getToLocationCode(), businesstypeDO);
} catch (ServiceException ex) { } catch (ServiceException ex) {
messageDetail += "从" + ex.getMessage() + ","; messageDetail += "从" + ex.getMessage() + ",";
} }
try { try {
validatorIfInventoryStatuses(detailDo.getInventoryStatus(),businesstypeDO); validatorIfInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO);
} catch (ServiceException ex) { } catch (ServiceException ex) {
messageDetail += "到" + ex.getMessage() + ","; messageDetail += "到" + ex.getMessage() + ",";
} }
try { try {
validatorBalance(detailDo); validatorBalance(detailDo);
@ -461,7 +465,7 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
try { try {
ValidationUtils.validate(validator, mainDo); ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) { } catch (Exception ex) {
messageDetail+= ex.getMessage() + (","); messageDetail += ex.getMessage() + (",");
} }
return messageDetail; return messageDetail;
} }
@ -472,12 +476,12 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
// 校验存在存在下级单据 // 校验存在存在下级单据
CustomerreturnRequestMainDO mainDO = validateCustomerreturnRequestMainExists(id); CustomerreturnRequestMainDO mainDO = validateCustomerreturnRequestMainExists(id);
Long count = customerreturnJobMainMapper.selectByRequestNumber(mainDO.getNumber()); Long count = customerreturnJobMainMapper.selectByRequestNumber(mainDO.getNumber());
if(count > 0) { if (count > 0) {
throw new ServiceException(CUSTOMERRETURN_REQUEST_JOB_EXISTS); throw new ServiceException(CUSTOMERRETURN_REQUEST_JOB_EXISTS);
} }
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.close(); boolean flag = requestStatusState.close();
if(!flag) { if (!flag) {
throw new ServiceException(CUSTOMERRETURN_REQUEST_CANNOT_CLOSE); throw new ServiceException(CUSTOMERRETURN_REQUEST_CANNOT_CLOSE);
} }
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
@ -491,12 +495,12 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
// 校验存在存在下级单据 // 校验存在存在下级单据
CustomerreturnRequestMainDO mainDO = validateCustomerreturnRequestMainExists(id); CustomerreturnRequestMainDO mainDO = validateCustomerreturnRequestMainExists(id);
Long count = customerreturnJobMainMapper.selectByRequestNumber(mainDO.getNumber()); Long count = customerreturnJobMainMapper.selectByRequestNumber(mainDO.getNumber());
if(count > 0) { if (count > 0) {
throw new ServiceException(CUSTOMERRETURN_REQUEST_JOB_EXISTS); throw new ServiceException(CUSTOMERRETURN_REQUEST_JOB_EXISTS);
} }
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.reAdd(); boolean flag = requestStatusState.reAdd();
if(!flag) { if (!flag) {
throw new ServiceException(CUSTOMERRETURN_REQUEST_CANNOT_RE_ADD); throw new ServiceException(CUSTOMERRETURN_REQUEST_CANNOT_RE_ADD);
} }
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
@ -510,12 +514,12 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
CustomerreturnRequestMainDO mainDO = validateCustomerreturnRequestMainExists(id); CustomerreturnRequestMainDO mainDO = validateCustomerreturnRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute());
if(!flag) { if (!flag) {
throw new ServiceException(CUSTOMERRETURN_REQUEST_CANNOT_SUBMIT); throw new ServiceException(CUSTOMERRETURN_REQUEST_CANNOT_SUBMIT);
} }
mainDO.setStatus(requestStatusState.getState().getCode()); mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法 //调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, customerreturnRequestDetailMapper.selectList(mainDO.getId())); this.generateJob(mainDO, customerreturnRequestDetailMapper.selectList(mainDO.getId()));
} }
trendsApi.createTrends(id, "CustomerRejectRequest", "提交了客户退货申请", TrendsTypeEnum.UPDATE); trendsApi.createTrends(id, "CustomerRejectRequest", "提交了客户退货申请", TrendsTypeEnum.UPDATE);
@ -529,12 +533,12 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
CustomerreturnRequestMainDO mainDO = validateCustomerreturnRequestMainExists(id); CustomerreturnRequestMainDO mainDO = validateCustomerreturnRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.agree(mainDO.getAutoAgree()); boolean flag = requestStatusState.agree(mainDO.getAutoAgree());
if(!flag) { if (!flag) {
throw new ServiceException(CUSTOMERRETURN_REQUEST_CANNOT_AGREE); throw new ServiceException(CUSTOMERRETURN_REQUEST_CANNOT_AGREE);
} }
mainDO.setStatus(requestStatusState.getState().getCode()); mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法 //调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, customerreturnRequestDetailMapper.selectList(mainDO.getId())); this.generateJob(mainDO, customerreturnRequestDetailMapper.selectList(mainDO.getId()));
} }
trendsApi.createTrends(id, "CustomerRejectRequest", "审批同意了客户退货申请", TrendsTypeEnum.UPDATE); trendsApi.createTrends(id, "CustomerRejectRequest", "审批同意了客户退货申请", TrendsTypeEnum.UPDATE);
@ -548,7 +552,7 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
CustomerreturnRequestMainDO mainDO = validateCustomerreturnRequestMainExists(id); CustomerreturnRequestMainDO mainDO = validateCustomerreturnRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.handle(); boolean flag = requestStatusState.handle();
if(!flag) { if (!flag) {
throw new ServiceException(CUSTOMERRETURN_REQUEST_CANNOT_HANDLE); throw new ServiceException(CUSTOMERRETURN_REQUEST_CANNOT_HANDLE);
} }
mainDO.setStatus(requestStatusState.getState().getCode()); mainDO.setStatus(requestStatusState.getState().getCode());
@ -565,7 +569,7 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
CustomerreturnRequestMainDO mainDO = validateCustomerreturnRequestMainExists(id); CustomerreturnRequestMainDO mainDO = validateCustomerreturnRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.refused(); boolean flag = requestStatusState.refused();
if(!flag) { if (!flag) {
throw new ServiceException(CUSTOMERRETURN_REQUEST_CANNOT_ABORT); throw new ServiceException(CUSTOMERRETURN_REQUEST_CANNOT_ABORT);
} }
mainDO.setStatus(requestStatusState.getState().getCode()); mainDO.setStatus(requestStatusState.getState().getCode());
@ -575,6 +579,7 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
/** /**
* 新增主表校验 * 新增主表校验
*
* @param mainDo * @param mainDo
* @return * @return
*/ */
@ -589,40 +594,41 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
/** /**
* 新增子表校验 * 新增子表校验
*
* @param detailDo * @param detailDo
* @return * @return
*/ */
private void validateCustomerreturnRequestDetailCreate(CustomerreturnRequestMainDO mainDo, CustomerreturnRequestDetailDO detailDo) { private void validateCustomerreturnRequestDetailCreate(CustomerreturnRequestMainDO mainDo, CustomerreturnRequestDetailDO detailDo) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectRequest");
//校验成品发货记录子表并赋值
validateDeliverRecordDetail(mainDo,detailDo);
//校验物品基础信息并赋值 //校验物品基础信息并赋值
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
if(detailDo.getUom() != null){ if (detailDo.getUom() != null) {
if (!detailDo.getUom().equals(itembasicDO.getUom())) { if (!detailDo.getUom().equals(itembasicDO.getUom())) {
//注意转换字段数值 //注意转换字段数值
throw exception(UOM_EXCEPTION,"计量单位" + itembasicDO.getUom() + "错误,应该是" + detailDo.getUom() + ","); throw exception(UOM_EXCEPTION, "计量单位" + itembasicDO.getUom() + "错误,应该是" + detailDo.getUom() + ",");
} }
} }
//校验来源库位 //校验来源库位
if(!"".equals(detailDo.getFromLocationCode())){ if (!"".equals(detailDo.getFromLocationCode())) {
validatorIfInToLocationType(detailDo.getFromLocationCode(),businesstypeDO); validatorIfInToLocationType(detailDo.getFromLocationCode(), businesstypeDO);
} }
//校验到库位 //校验到库位
// customerdockService. // customerdockService.
validatorIfInFromLocationType(detailDo.getToLocationCode(),businesstypeDO); validatorIfInFromLocationType(detailDo.getToLocationCode(), businesstypeDO);
//校验库存状态 //校验库存状态
validatorIfInventoryStatuses(detailDo.getInventoryStatus(),businesstypeDO); validatorIfInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO);
//校验库存余额 //校验库存余额
validatorBalance(detailDo); validatorBalance(detailDo);
validateDeliverRecordQtyDetail(mainDo, detailDo);
} }
/** /**
* 校验发货记录并赋值 * 校验发货记录并赋值
*
* @param mainDo * @param mainDo
*/ */
private CustomerreturnRequestMainDO validateDeliverRecord(CustomerreturnRequestMainDO mainDo) { private CustomerreturnRequestMainDO validateDeliverRecord(CustomerreturnRequestMainDO mainDo) {
DeliverRecordMainDO deliverRecordMainDO = deliverRecordMainService.selectsMainRecordExist(mainDo.getDeliverRecordNumber()); DeliverRecordMainDO deliverRecordMainDO = deliverRecordMainService.selectsMainRecordExist(mainDo.getDeliverRecordNumber());
mainDo.setDeliverPlanNumber(deliverRecordMainDO.getDeliverPlanNumber()); mainDo.setDeliverPlanNumber(deliverRecordMainDO.getDeliverPlanNumber());
mainDo.setCustomerCode(deliverRecordMainDO.getCustomerCode()); mainDo.setCustomerCode(deliverRecordMainDO.getCustomerCode());
mainDo.setCustomerDockCode(deliverRecordMainDO.getCustomerDockCode()); mainDo.setCustomerDockCode(deliverRecordMainDO.getCustomerDockCode());
@ -632,9 +638,10 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
/** /**
* 校验业务类型和申请设置并赋值 * 校验业务类型和申请设置并赋值
*
* @param mainDo * @param mainDo
*/ */
private void validateRequestsettingAndBusinesstype(CustomerreturnRequestMainDO mainDo){ private void validateRequestsettingAndBusinesstype(CustomerreturnRequestMainDO mainDo) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("CustomerRejectRequest"); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("CustomerRejectRequest");
if (requestsettingDO != null) { if (requestsettingDO != null) {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
@ -643,7 +650,7 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
} }
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectRequest");
if(businesstypeDO != null){ if (businesstypeDO != null) {
mainDo.setBusinessType(businesstypeDO.getCode()); mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes()); mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes());
@ -655,14 +662,51 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
} }
private HashMap<Long, BigDecimal> validateDeliverRecordQtyDetail(CustomerreturnRequestMainDO mainDo, CustomerreturnRequestDetailDO detailDO) {
QueryWrapper<CustomerreturnRecordMainDO> customerreturnRecordMainDOQueryWrapper = new QueryWrapper<>();
customerreturnRecordMainDOQueryWrapper.eq("deliver_record_number", mainDo.getDeliverRecordNumber());
HashMap<Long, BigDecimal> hashMap = new HashMap<>();
//查询出已经退货完的记录主表
List<CustomerreturnRecordMainDO> customerreturnRecordMainDOS = customerreturnRecordMainMapper.selectList(customerreturnRecordMainDOQueryWrapper);
//获取发货记录子表每条数据
List<DeliverRecordDetailDO> deliverRecordDetailDO = deliverRecordMainService.selectsDeliverRecordExist(mainDo.getDeliverRecordNumber());
if (deliverRecordDetailDO != null && deliverRecordDetailDO.size() != 0) {
//2条
for (DeliverRecordDetailDO deliver : deliverRecordDetailDO) {
for (CustomerreturnRecordMainDO customerreturnRecordMainDO : customerreturnRecordMainDOS) {
List<CustomerreturnRecordDetailDO> customerreturnRecordDetailDOS = customerreturnRecordDetailMapper.selectList(customerreturnRecordMainDO.getId());
//查询出已经退货完的记录主表下的子表数据
BigDecimal qty = BigDecimal.ZERO;
for (CustomerreturnRecordDetailDO customerreturnRecordDetailDO : customerreturnRecordDetailDOS) {
if (deliver.getItemCode().equals(detailDO.getItemCode()) && deliver.getBatch().equals(detailDO.getBatch())
&& deliver.getPackingNumber().equals(detailDO.getPackingNumber())) {
if (deliver.getItemCode().equals(customerreturnRecordDetailDO.getItemCode()) && deliver.getBatch().equals(customerreturnRecordDetailDO.getFromBatch())
&& deliver.getPackingNumber().equals(customerreturnRecordDetailDO.getFromPackingNumber())) {
hashMap.put(detailDO.getId(), qty = qty.add(customerreturnRecordDetailDO.getQty()));
}
}
}
if (hashMap.get(detailDO.getId()) != null) {
if (deliver.getQty().compareTo((hashMap.get(detailDO.getId())).add(detailDO.getQty())) == -1) {
throw exception(QTY_EXCEPTION, "当前客户退货申请单的" + detailDO.getId() + "的退货数量已超出当前发货记录的发货数量" + (hashMap.get(detailDO.getId())).add(detailDO.getQty()).subtract(deliver.getQty()) + "个");
}
}
}
}
}
return hashMap;
}
/** /**
* 校验成品发货记录子表并赋值 * 校验成品发货记录子表并赋值
*
* @param mainDo * @param mainDo
* @param detailDO * @param detailDO
*/ */
private void validateDeliverRecordDetail(CustomerreturnRequestMainDO mainDo,CustomerreturnRequestDetailDO detailDO){ private void validateDeliverRecordDetail(CustomerreturnRequestMainDO mainDo, CustomerreturnRequestDetailDO detailDO) {
List<DeliverRecordDetailDO> deliverRecordDetailDO = deliverRecordMainService.selectsDeliverRecordExist(mainDo.getDeliverRecordNumber()); List<DeliverRecordDetailDO> deliverRecordDetailDO = deliverRecordMainService.selectsDeliverRecordExist(mainDo.getDeliverRecordNumber());
if(deliverRecordDetailDO != null && deliverRecordDetailDO.size() != 0){ if (deliverRecordDetailDO != null && deliverRecordDetailDO.size() != 0) {
Boolean result = false; Boolean result = false;
for (DeliverRecordDetailDO deliver : deliverRecordDetailDO) { for (DeliverRecordDetailDO deliver : deliverRecordDetailDO) {
if ( if (
@ -670,28 +714,25 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
// deliver.getSoLine().equals(detailDO.getSoLine()) && // deliver.getSoLine().equals(detailDO.getSoLine()) &&
deliver.getItemCode().equals(detailDO.getItemCode()) && deliver.getItemCode().equals(detailDO.getItemCode()) &&
deliver.getBatch().equals(detailDO.getBatch()) && deliver.getBatch().equals(detailDO.getBatch()) &&
deliver.getPackingNumber().equals(detailDO.getPackingNumber())) deliver.getPackingNumber().equals(detailDO.getPackingNumber())) {
{
detailDO.setQty(deliver.getQty());
detailDO.setUom(deliver.getUom());
result = true; result = true;
} }
} }
if(!result){ if (!result) {
throw exception(DELIVER_RECORD_DETAIL_EXCEPTION,"物料代码" + detailDO.getItemCode() + "批次" + detailDO.getBatch() + "箱码" + detailDO.getPackingNumber() + "不在发货记录单" throw exception(DELIVER_RECORD_DETAIL_EXCEPTION, "物料代码" + detailDO.getItemCode() + "批次" + detailDO.getBatch() + "箱码" + detailDO.getPackingNumber() + "不在发货记录单"
+ mainDo.getDeliverRecordNumber() + "中"); + mainDo.getDeliverRecordNumber() + "中");
// throw exception(DELIVER_RECORD_DETAIL_EXCEPTION,"销售订单号" + detailDO.getSoNumber() + "销售订单行" + detailDO.getSoLine() // throw exception(DELIVER_RECORD_DETAIL_EXCEPTION,"销售订单号" + detailDO.getSoNumber() + "销售订单行" + detailDO.getSoLine()
// + "物料代码" + detailDO.getItemCode() + "批次" + detailDO.getBatch() + "箱码" + detailDO.getPackingNumber() + "不在发货记录单" // + "物料代码" + detailDO.getItemCode() + "批次" + detailDO.getBatch() + "箱码" + detailDO.getPackingNumber() + "不在发货记录单"
// + createReqVO.getDeliverRecordNumber() + "中"); // + createReqVO.getDeliverRecordNumber() + "中");
} }
} } else {
else {
throw exception(DELIVER_RECORD_DETAIL_NOT_EXISTS); throw exception(DELIVER_RECORD_DETAIL_NOT_EXISTS);
} }
} }
/** /**
* 校验物品基础信息并赋值 * 校验物品基础信息并赋值
*
* @param itemCode * @param itemCode
*/ */
private ItembasicDO validatorItembasic(String itemCode) { private ItembasicDO validatorItembasic(String itemCode) {
@ -700,6 +741,7 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
/** /**
* 校验出库库位类型是否一致 * 校验出库库位类型是否一致
*
* @param fromLocationCode * @param fromLocationCode
* @param businesstypeDO * @param businesstypeDO
*/ */
@ -709,15 +751,17 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
/** /**
* 校验出库库位类型是否一致 * 校验出库库位类型是否一致
*
* @param toLocationCode * @param toLocationCode
* @param businesstypeDO * @param businesstypeDO
*/ */
private void validatorIfInFromLocationType(String toLocationCode, BusinesstypeDO businesstypeDO) { private void validatorIfInFromLocationType(String toLocationCode, BusinesstypeDO businesstypeDO) {
jobUtils.ifInFromLocationType(toLocationCode, businesstypeDO); jobUtils.ifInFromLocationType(toLocationCode, businesstypeDO);
} }
/** /**
* 校验库存状态是否一致 * 校验库存状态是否一致
*
* @param inventoryStatus * @param inventoryStatus
* @param businesstypeDO * @param businesstypeDO
*/ */
@ -727,14 +771,15 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
/** /**
* 校验库存余额 * 校验库存余额
*
* @param * @param
*/ */
private void validatorBalance(CustomerreturnRequestDetailDO detailDO) { private void validatorBalance(CustomerreturnRequestDetailDO detailDO) {
ArrayList<String> list = new ArrayList<>(); ArrayList<String> list = new ArrayList<>();
list.add(detailDO.getInventoryStatus()); list.add(detailDO.getInventoryStatus());
if("CUST".equals(detailDO.getFromLocationCode())){ if ("CUST".equals(detailDO.getFromLocationCode())) {
List<BalanceDO> balance = jobUtils.selectlocationReturnManagementAccuracy(detailDO.getItemCode(),detailDO.getPackingNumber() List<BalanceDO> balance = jobUtils.selectlocationReturnManagementAccuracy(detailDO.getItemCode(), detailDO.getPackingNumber()
,detailDO.getBatch(),detailDO.getFromLocationCode(),list); , detailDO.getBatch(), detailDO.getFromLocationCode(), list);
isqty(detailDO.getQty(), balance.get(0).getQty()); isqty(detailDO.getQty(), balance.get(0).getQty());
} }
} }

33
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestMainServiceImpl.java

@ -9,21 +9,25 @@ import com.win.framework.common.util.validation.ValidationUtils;
import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecordDetailCreateReqVO; import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecordDetailCreateReqVO;
import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecordMainCreateReqVO; import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecordMainCreateReqVO;
import com.win.module.wms.controller.customersettleRequest.vo.*; import com.win.module.wms.controller.customersettleRequest.vo.*;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.customersettleRecord.CustomersettleRecordDetailConvert; import com.win.module.wms.convert.customersettleRecord.CustomersettleRecordDetailConvert;
import com.win.module.wms.convert.customersettleRecord.CustomersettleRecordMainConvert; import com.win.module.wms.convert.customersettleRecord.CustomersettleRecordMainConvert;
import com.win.module.wms.convert.customersettleRequest.CustomersettleRequestDetailConvert; import com.win.module.wms.convert.customersettleRequest.CustomersettleRequestDetailConvert;
import com.win.module.wms.convert.customersettleRequest.CustomersettleRequestMainConvert; import com.win.module.wms.convert.customersettleRequest.CustomersettleRequestMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.customersettleRecord.CustomersettleRecordDetailDO;
import com.win.module.wms.dal.dataobject.customersettleRecord.CustomersettleRecordMainDO; import com.win.module.wms.dal.dataobject.customersettleRecord.CustomersettleRecordMainDO;
import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestDetailDO; import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestDetailDO;
import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestMainDO; import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestMainDO;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO; import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordMainDO; import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.mysql.customersettleRecord.CustomersettleRecordDetailMapper; import com.win.module.wms.dal.mysql.customersettleRecord.CustomersettleRecordDetailMapper;
import com.win.module.wms.dal.mysql.customersettleRecord.CustomersettleRecordMainMapper; import com.win.module.wms.dal.mysql.customersettleRecord.CustomersettleRecordMainMapper;
import com.win.module.wms.dal.mysql.customersettleRequest.CustomersettleRequestDetailMapper; import com.win.module.wms.dal.mysql.customersettleRequest.CustomersettleRequestDetailMapper;
@ -42,12 +46,14 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Validator; import javax.validation.Validator;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.*; import static com.win.module.wms.enums.ErrorCodeConstants.*;
/** /**
@ -84,6 +90,8 @@ public class CustomersettleRequestMainServiceImpl implements CustomersettleReque
private TrendsApi trendsApi; private TrendsApi trendsApi;
@Resource @Resource
private SerialNumberApi serialNumberApi; private SerialNumberApi serialNumberApi;
@Resource
private AdminUserApi userApi;
@Override @Override
public Long createCustomersettleRequestMain(CustomersettleRequestMainCreateReqVO createReqVO) { public Long createCustomersettleRequestMain(CustomersettleRequestMainCreateReqVO createReqVO) {
// 插入 // 插入
@ -270,14 +278,35 @@ public class CustomersettleRequestMainServiceImpl implements CustomersettleReque
customersettleRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); customersettleRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode());
CustomersettleRecordMainDO convert = CustomersettleRecordMainConvert.INSTANCE.convert(customersettleRecordMainCreateReqVO); CustomersettleRecordMainDO convert = CustomersettleRecordMainConvert.INSTANCE.convert(customersettleRecordMainCreateReqVO);
customersettleRecordMainMapper.insert(convert); customersettleRecordMainMapper.insert(convert);
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for (CustomersettleRequestDetailDO customersettleRequestDetailDO : detailDOList) { for (CustomersettleRequestDetailDO customersettleRequestDetailDO : detailDOList) {
CustomersettleRecordDetailCreateReqVO customersettleRecordDetailCreateReqVO = new CustomersettleRecordDetailCreateReqVO(); CustomersettleRecordDetailCreateReqVO customersettleRecordDetailCreateReqVO = new CustomersettleRecordDetailCreateReqVO();
BeanUtils.copyProperties(customersettleRequestDetailDO, customersettleRecordDetailCreateReqVO); BeanUtils.copyProperties(customersettleRequestDetailDO, customersettleRecordDetailCreateReqVO);
customersettleRecordDetailCreateReqVO.setNumber(number); customersettleRecordDetailCreateReqVO.setNumber(number);
customersettleRecordDetailCreateReqVO.setMasterId(convert.getId().toString()); customersettleRecordDetailCreateReqVO.setMasterId(convert.getId().toString());
customersettleRecordDetailMapper.insert(CustomersettleRecordDetailConvert.INSTANCE.convert(customersettleRecordDetailCreateReqVO)); CustomersettleRecordDetailDO recordDetailDO = CustomersettleRecordDetailConvert.INSTANCE.convert(customersettleRecordDetailCreateReqVO);
trendsApi.createTrends(mainDO.getId(), "CustomersettleRecord", "客户结算申请生成客户结算记录", TrendsTypeEnum.CREATE); customersettleRecordDetailMapper.insert(recordDetailDO);
//添加库存事务list
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(recordDetailDO, 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(recordDetailDO.getOwnerCode());
transactionCreateReqVO.setItemCode(recordDetailDO.getItemCode());
transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setId(null);
transactionCreateReqVO.setPackingNumber(recordDetailDO.getPackingNumber());
transactionCreateReqVO.setBatch(recordDetailDO.getBatch());
transactionCreateReqVO.setContainerNumber(null);
transactionCreateReqVO.setAmount(recordDetailDO.getAmount());
transactionCreateReqVO.setWarehouseCode(mainDO.getFromWarehouseCode());
transactionCreateReqVO.setLocationCode(recordDetailDO.getFromLocationCode());
transactionCreateReqVOList.add(transactionCreateReqVO);
} }
trendsApi.createTrends(mainDO.getId(), "CustomersettleRecord", "客户结算申请生成客户结算记录", TrendsTypeEnum.CREATE);
} }
@Override @Override

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java

@ -614,7 +614,7 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService
deliverJobDetailDo.setUpdateTime(null); deliverJobDetailDo.setUpdateTime(null);
deliverJobDetailDo.setUpdater(null); deliverJobDetailDo.setUpdater(null);
if("TRUE".equals(businesstypeDO.getUseOnTheWay())){ if("TRUE".equals(businesstypeDO.getUseOnTheWay())){
deliverJobDetailDo.setToLocationCode("FAC_INTRANS"); deliverJobDetailDo.setToLocationCode("CUST");
}else { }else {
deliverJobDetailDo.setToLocationCode(null); deliverJobDetailDo.setToLocationCode(null);
} }

177
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainServiceImpl.java

@ -12,6 +12,7 @@ import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO;
import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO; import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO;
import com.win.module.wms.controller.inventorymoveJob.vo.*; import com.win.module.wms.controller.inventorymoveJob.vo.*;
import com.win.module.wms.controller.purchasereturnJob.vo.PurchasereturnJobDetailUpdateReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO;
@ -193,7 +194,7 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ
inventorymoveJobMainDO.setAcceptUserId(String.valueOf(userId)); inventorymoveJobMainDO.setAcceptUserId(String.valueOf(userId));
inventorymoveJobMainDO.setAcceptUserName(userRespDTO.getNickname()); inventorymoveJobMainDO.setAcceptUserName(userRespDTO.getNickname());
inventorymoveJobMainDO.setAcceptTime(LocalDateTime.now()); inventorymoveJobMainDO.setAcceptTime(LocalDateTime.now());
trendsApi.createTrends(id, "MoveJob", "承接了库存转移任务", TrendsTypeEnum.UPDATE); trendsApi.createTrends(id, "InventoryMoveJob", "承接了库存转移任务", TrendsTypeEnum.UPDATE);
return inventorymoveJobMainMapper.updateById(inventorymoveJobMainDO); return inventorymoveJobMainMapper.updateById(inventorymoveJobMainDO);
} }
@ -209,7 +210,7 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ
inventorymoveJobMainDO.setAcceptUserId(null); inventorymoveJobMainDO.setAcceptUserId(null);
inventorymoveJobMainDO.setAcceptUserName(null); inventorymoveJobMainDO.setAcceptUserName(null);
inventorymoveJobMainDO.setAcceptTime(null); inventorymoveJobMainDO.setAcceptTime(null);
trendsApi.createTrends(id, "MoveJob", "取消了库存转移任务", TrendsTypeEnum.UPDATE); trendsApi.createTrends(id, "InventoryMoveJob", "取消了库存转移任务", TrendsTypeEnum.UPDATE);
return inventorymoveJobMainMapper.updateById(inventorymoveJobMainDO); return inventorymoveJobMainMapper.updateById(inventorymoveJobMainDO);
} }
@ -222,7 +223,7 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ
throw exception(DELIVER_JOB_MAIN_STATUS_ERROR); throw exception(DELIVER_JOB_MAIN_STATUS_ERROR);
} }
inventorymoveJobMainDO.setStatus(jobStatusState.getState().getCode()); inventorymoveJobMainDO.setStatus(jobStatusState.getState().getCode());
trendsApi.createTrends(id, "MoveJob", "关闭了库存转移任务", TrendsTypeEnum.UPDATE); trendsApi.createTrends(id, "InventoryMoveJob", "关闭了库存转移任务", TrendsTypeEnum.UPDATE);
return inventorymoveJobMainMapper.updateById(inventorymoveJobMainDO); return inventorymoveJobMainMapper.updateById(inventorymoveJobMainDO);
} }
@ -231,7 +232,7 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ
public String executeInventorymoveJobMain(InventorymoveJobMainUpdateReqVO inventorymoveJobMainUpdateReqVO) { public String executeInventorymoveJobMain(InventorymoveJobMainUpdateReqVO inventorymoveJobMainUpdateReqVO) {
RecordsettingDO recordsettingDO = null; RecordsettingDO recordsettingDO = null;
BusinesstypeDO businesstypeDO = null; BusinesstypeDO businesstypeDO = null;
String number = ""; String number = "";
//查询数据 //查询数据
InventorymoveJobMainDO inventorymoveJobMainDO = this.validateInventorymoveJobMainExists(inventorymoveJobMainUpdateReqVO.getId()); InventorymoveJobMainDO inventorymoveJobMainDO = this.validateInventorymoveJobMainExists(inventorymoveJobMainUpdateReqVO.getId());
List<InventorymoveJobDetailDO> subList = inventorymoveJobDetailService.selectList(inventorymoveJobMainDO.getId()); List<InventorymoveJobDetailDO> subList = inventorymoveJobDetailService.selectList(inventorymoveJobMainDO.getId());
@ -259,26 +260,30 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ
inventorymoveRecordMainDO.setExecuteTime(LocalDateTime.now()); inventorymoveRecordMainDO.setExecuteTime(LocalDateTime.now());
inventorymoveRecordMainDO.setActiveDate(LocalDateTime.now()); inventorymoveRecordMainDO.setActiveDate(LocalDateTime.now());
inventorymoveRecordMainDO.setDueTime(inventorymoveJobMainDO.getRequestDueTime()); inventorymoveRecordMainDO.setDueTime(inventorymoveJobMainDO.getRequestDueTime());
if("HoldToOkJob".equals(inventorymoveRecordMainDO.getBusinessType())){ if ("HoldToOkJob".equals(inventorymoveRecordMainDO.getBusinessType())) {
number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_RECORD.getCode()); number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToOkRecord"); recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToOkRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkRecord"); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkRecord");
} else if("OkToHoldJob".equals(inventorymoveRecordMainDO.getBusinessType())){ } else if ("OkToHoldJob".equals(inventorymoveRecordMainDO.getBusinessType())) {
number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_RECORD.getCode()); number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("OkToHoldRecord"); recordsettingDO = recordsettingService.selectRecordsettingExist("OkToHoldRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRecord"); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRecord");
} else if("HoldToScrapJob".equals(inventorymoveRecordMainDO.getBusinessType())){ } else if ("HoldToScrapJob".equals(inventorymoveRecordMainDO.getBusinessType())) {
number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_RECORD.getCode()); number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToScrapRecord"); recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToScrapRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRecord"); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRecord");
} else if("ScrapToHoldJob".equals(inventorymoveRecordMainDO.getBusinessType())){ } else if ("ScrapToHoldJob".equals(inventorymoveRecordMainDO.getBusinessType())) {
number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_RECORD.getCode()); number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("ScrapToHoldRecord"); recordsettingDO = recordsettingService.selectRecordsettingExist("ScrapToHoldRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRecord"); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRecord");
} else if("OkToScrapJob".equals(inventorymoveRecordMainDO.getBusinessType())){ } else if ("OkToScrapJob".equals(inventorymoveRecordMainDO.getBusinessType())) {
number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode()); number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("OkToScrapRecord"); recordsettingDO = recordsettingService.selectRecordsettingExist("OkToScrapRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRecord"); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRecord");
}else {
number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_MOVE_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("InventoryMoveRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryMoveRecord");
} }
inventorymoveRecordMainDO.setNumber(number); inventorymoveRecordMainDO.setNumber(number);
inventorymoveRecordMainDO.setBusinessType(businesstypeDO.getCode()); inventorymoveRecordMainDO.setBusinessType(businesstypeDO.getCode());
@ -290,84 +295,78 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ
List<InventorymoveRecordDetailDO> inventorymoveRecordDetailDOList = new ArrayList<>(); List<InventorymoveRecordDetailDO> inventorymoveRecordDetailDOList = new ArrayList<>();
//库存事务 //库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>(); List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
subList.forEach(subListItem -> { for (InventorymoveJobDetailUpdateReqVO inventorymoveJobDetailUpdateReqVO : inventorymoveJobDetailUpdateReqVOList) {
inventorymoveJobDetailUpdateReqVOList.forEach(DetailUpdateItem -> { InventorymoveRecordDetailDO inventorymoveRecordDetailDO = new InventorymoveRecordDetailDO();
// 匹配任务子表与参数中子表 BeanUtils.copyProperties(inventorymoveJobDetailUpdateReqVO, inventorymoveRecordDetailDO);
if (DetailUpdateItem.getId().equals(subListItem.getId())) { inventorymoveRecordDetailDO.setJobDetailId(inventorymoveJobDetailUpdateReqVO.getId().toString());
List<Map<String,String>> recordList = DetailUpdateItem.getRecordList(); inventorymoveRecordDetailDO.setId(null);
recordList.forEach(recordListItem -> {InventorymoveRecordDetailDO inventorymoveRecordDetailDO = new InventorymoveRecordDetailDO(); inventorymoveRecordDetailDO.setCreator(null);
BeanUtils.copyProperties(DetailUpdateItem, inventorymoveRecordDetailDO); inventorymoveRecordDetailDO.setCreateTime(LocalDateTime.now());
inventorymoveRecordDetailDO.setJobDetailId(DetailUpdateItem.getId().toString()); inventorymoveRecordDetailDO.setUpdater(null);
inventorymoveRecordDetailDO.setId(null); inventorymoveRecordDetailDO.setUpdateTime(null);
inventorymoveRecordDetailDO.setCreator(null); inventorymoveRecordDetailDO.setNumber(inventorymoveRecordMainDO.getNumber());
inventorymoveRecordDetailDO.setCreateTime(LocalDateTime.now()); inventorymoveRecordDetailDO.setInterfaceType(inventorymoveRecordMainDO.getInterfaceType());
inventorymoveRecordDetailDO.setUpdater(null); inventorymoveRecordDetailDO.setMasterId(inventorymoveRecordMainDO.getId().toString());
inventorymoveRecordDetailDO.setUpdateTime(null); inventorymoveRecordDetailDO.setQty(inventorymoveJobDetailUpdateReqVO.getHandleQty());
inventorymoveRecordDetailDO.setNumber(inventorymoveRecordMainDO.getNumber()); inventorymoveRecordDetailDO.setToPackingNumber(inventorymoveJobDetailUpdateReqVO.getToPackingNumber());
inventorymoveRecordDetailDO.setInterfaceType(inventorymoveRecordMainDO.getInterfaceType()); inventorymoveRecordDetailDO.setToContainerNumber(inventorymoveJobDetailUpdateReqVO.getToContainerNumber());
inventorymoveRecordDetailDO.setMasterId(inventorymoveRecordMainDO.getId().toString()); inventorymoveRecordDetailDO.setToBatch(inventorymoveJobDetailUpdateReqVO.getToBatch());
inventorymoveRecordDetailDO.setQty(new BigDecimal(recordListItem.get("handleQty"))); inventorymoveRecordDetailDO.setToLocationCode(inventorymoveJobDetailUpdateReqVO.getToLocationCode());
inventorymoveRecordDetailDO.setToPackingNumber(recordListItem.get("toPackingNumber")==null?"":recordListItem.get("toPackingNumber")); LocationDO toLocationDO = locationService.selectLocation(inventorymoveJobDetailUpdateReqVO.getToLocationCode());
inventorymoveRecordDetailDO.setToContainerNumber(recordListItem.get("toContainerNumber")==null?"":recordListItem.get("toContainerNumber")); inventorymoveRecordDetailDO.setToAreaCode(toLocationDO.getAreaCode());
inventorymoveRecordDetailDO.setToBatch(recordListItem.get("toBatch")==null?"":recordListItem.get("toBatch")); inventorymoveRecordDetailDO.setToLocationGroupCode(toLocationDO.getLocationGroupCode());
inventorymoveRecordDetailDO.setToLocationCode(recordListItem.get("toLocationCode")); LocationDO fromLocationDO = locationService.selectLocation(inventorymoveRecordDetailDO.getFromLocationCode());
LocationDO toLocationDO = locationService.selectLocation(recordListItem.get("toLocationCode")); inventorymoveRecordDetailDO.setFromAreaCode(fromLocationDO.getAreaCode());
inventorymoveRecordDetailDO.setToAreaCode(toLocationDO.getAreaCode()); inventorymoveRecordDetailDO.setFromLocationGroupCode(fromLocationDO.getLocationGroupCode());
inventorymoveRecordDetailDO.setToLocationGroupCode(toLocationDO.getLocationGroupCode()); inventorymoveRecordDetailDO.setToInventoryStatus(inventorymoveJobDetailUpdateReqVO.getToInventoryStatus());
LocationDO fromLocationDO = locationService.selectLocation(inventorymoveRecordDetailDO.getFromLocationCode()); inventorymoveRecordDetailDO.setFromPackingNumber(inventorymoveJobDetailUpdateReqVO.getPackingNumber());
inventorymoveRecordDetailDO.setFromAreaCode(fromLocationDO.getAreaCode()); inventorymoveRecordDetailDO.setFromContainerNumber(inventorymoveJobDetailUpdateReqVO.getContainerNumber());
inventorymoveRecordDetailDO.setFromLocationGroupCode(fromLocationDO.getLocationGroupCode()); inventorymoveRecordDetailDO.setFromAreaCode(inventorymoveJobMainDO.getFromAreaCodes());
inventorymoveRecordDetailDO.setToInventoryStatus(recordListItem.get("toInventoryStatus")); inventorymoveRecordDetailDO.setToAreaCode(inventorymoveJobMainDO.getToAreaCodes());
inventorymoveRecordDetailDO.setFromPackingNumber(DetailUpdateItem.getPackingNumber()); inventorymoveRecordDetailDO.setFromBatch(inventorymoveJobDetailUpdateReqVO.getBatch());
inventorymoveRecordDetailDO.setFromContainerNumber(DetailUpdateItem.getContainerNumber()); inventorymoveRecordDetailDO.setInterfaceType(inventorymoveRecordMainDO.getInterfaceType());
inventorymoveRecordDetailDO.setFromAreaCode(inventorymoveJobMainDO.getFromAreaCodes()); inventorymoveRecordDetailDO.setFromInventoryStatus(inventorymoveJobDetailUpdateReqVO.getInventoryStatus());
inventorymoveRecordDetailDO.setToAreaCode(inventorymoveJobMainDO.getToAreaCodes()); inventorymoveRecordDetailDOList.add(inventorymoveRecordDetailDO);
inventorymoveRecordDetailDO.setFromBatch(DetailUpdateItem.getBatch()); //添加库存事务list
inventorymoveRecordDetailDO.setInterfaceType(inventorymoveRecordMainDO.getInterfaceType()); // 入动作
inventorymoveRecordDetailDO.setFromInventoryStatus(DetailUpdateItem.getInventoryStatus()); TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
inventorymoveRecordDetailDOList.add(inventorymoveRecordDetailDO); BeanUtils.copyProperties(inventorymoveRecordDetailDO, transactionCreateReqVO);
//添加库存事务list TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(inventorymoveRecordMainDO.getInTransactionType());
// 入动作 transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
BeanUtils.copyProperties(inventorymoveRecordDetailDO, transactionCreateReqVO); transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(inventorymoveRecordMainDO.getInTransactionType()); transactionCreateReqVO.setBusinessType(inventorymoveJobMainDO.getBusinessType());
transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); transactionCreateReqVO.setOwnerCode(inventorymoveRecordDetailDO.getFromOwnerCode());
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); transactionCreateReqVO.setRecordNumber(inventorymoveRecordMainDO.getNumber());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); transactionCreateReqVO.setId(null);
transactionCreateReqVO.setBusinessType(inventorymoveJobMainDO.getBusinessType()); transactionCreateReqVO.setPackingNumber(inventorymoveJobDetailUpdateReqVO.getPackingNumber());
transactionCreateReqVO.setOwnerCode(inventorymoveRecordDetailDO.getFromOwnerCode()); transactionCreateReqVO.setBatch(inventorymoveJobDetailUpdateReqVO.getBatch());
transactionCreateReqVO.setRecordNumber(inventorymoveRecordMainDO.getNumber()); transactionCreateReqVO.setContainerNumber(inventorymoveJobDetailUpdateReqVO.getContainerNumber());
transactionCreateReqVO.setId(null); transactionCreateReqVO.setInventoryStatus(inventorymoveJobDetailUpdateReqVO.getInventoryStatus());
transactionCreateReqVO.setPackingNumber(DetailUpdateItem.getPackingNumber()); transactionCreateReqVO.setAmount(BigDecimal.ZERO);
transactionCreateReqVO.setBatch(DetailUpdateItem.getBatch()); transactionCreateReqVO.setLocationCode(inventorymoveJobDetailUpdateReqVO.getToLocationCode());
transactionCreateReqVO.setContainerNumber(DetailUpdateItem.getContainerNumber()); transactionCreateReqVOList.add(transactionCreateReqVO);
transactionCreateReqVO.setInventoryStatus(DetailUpdateItem.getInventoryStatus()); // 出动作
transactionCreateReqVO.setAmount(BigDecimal.ZERO); TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
transactionCreateReqVO.setLocationCode(recordListItem.get("toLocationCode").toString()); BeanUtils.copyProperties(inventorymoveRecordDetailDO, transactionCreateReqVOOut);
transactionCreateReqVOList.add(transactionCreateReqVO); TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(inventorymoveRecordMainDO.getOutTransactionType());
// 出动作 transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
BeanUtils.copyProperties(inventorymoveRecordDetailDO, transactionCreateReqVOOut); transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(inventorymoveRecordMainDO.getOutTransactionType()); transactionCreateReqVOOut.setBusinessType(inventorymoveJobMainDO.getBusinessType());
transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); transactionCreateReqVOOut.setOwnerCode(inventorymoveRecordDetailDO.getFromOwnerCode());
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); transactionCreateReqVOOut.setRecordNumber(inventorymoveRecordMainDO.getNumber());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); transactionCreateReqVOOut.setId(null);
transactionCreateReqVOOut.setBusinessType(inventorymoveJobMainDO.getBusinessType()); transactionCreateReqVOOut.setPackingNumber(inventorymoveJobDetailUpdateReqVO.getPackingNumber());
transactionCreateReqVOOut.setOwnerCode(inventorymoveRecordDetailDO.getFromOwnerCode()); transactionCreateReqVOOut.setBatch(inventorymoveJobDetailUpdateReqVO.getBatch());
transactionCreateReqVOOut.setRecordNumber(inventorymoveRecordMainDO.getNumber()); transactionCreateReqVOOut.setContainerNumber(inventorymoveJobDetailUpdateReqVO.getContainerNumber());
transactionCreateReqVOOut.setId(null); transactionCreateReqVOOut.setInventoryStatus(inventorymoveJobDetailUpdateReqVO.getInventoryStatus());
transactionCreateReqVOOut.setPackingNumber(DetailUpdateItem.getPackingNumber()); transactionCreateReqVOOut.setAmount(BigDecimal.ZERO);
transactionCreateReqVOOut.setBatch(DetailUpdateItem.getBatch()); transactionCreateReqVOOut.setLocationCode(inventorymoveJobDetailUpdateReqVO.getFromLocationCode());
transactionCreateReqVOOut.setContainerNumber(DetailUpdateItem.getContainerNumber()); transactionCreateReqVOList.add(transactionCreateReqVOOut);
transactionCreateReqVOOut.setInventoryStatus(DetailUpdateItem.getInventoryStatus()); };
transactionCreateReqVOOut.setAmount(BigDecimal.ZERO); if(!inventorymoveRecordDetailDOList.isEmpty()){
transactionCreateReqVOOut.setLocationCode(subListItem.getFromLocationCode()); inventorymoveRecordDetailMapper.insertBatch(inventorymoveRecordDetailDOList);
transactionCreateReqVOList.add(transactionCreateReqVOOut);});
}
});
});
if(!inventorymoveRecordDetailDOList.isEmpty()) {
inventorymoveRecordDetailMapper.insertBatch(inventorymoveRecordDetailDOList);
} }
//增加库存事务 //增加库存事务
transactionService.createTransaction(transactionCreateReqVOList); transactionService.createTransaction(transactionCreateReqVOList);
@ -376,7 +375,7 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ
//移除预计出 //移除预计出
expectoutService.deleteExpectoutByJobNumber(inventorymoveJobMainDO.getNumber()); expectoutService.deleteExpectoutByJobNumber(inventorymoveJobMainDO.getNumber());
//变更记录 //变更记录
trendsApi.createTrends(inventorymoveJobMainDO.getId(), inventorymoveJobMainDO.getBusinessType(), "执行了库存转移任务", TrendsTypeEnum.UPDATE); trendsApi.createTrends(inventorymoveJobMainDO.getId(),inventorymoveJobMainDO.getBusinessType(),"执行了库存转移任务",TrendsTypeEnum.UPDATE);
return number; return number;
} }
} }

26
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainServiceImpl.java

@ -77,33 +77,27 @@ public class InventorymoveRecordMainServiceImpl implements InventorymoveRecordMa
RecordsettingDO recordsettingDO = null; RecordsettingDO recordsettingDO = null;
BusinesstypeDO businesstypeDO = null; BusinesstypeDO businesstypeDO = null;
// 插入 // 插入
InventorymoveRecordMainDO inventorymoveRecordMain = InventorymoveRecordMainConvert.INSTANCE.convert(createReqVO);
inventorymoveRecordMainMapper.insert(inventorymoveRecordMain);
// 插入
InventorymoveRecordMainDO nventorymoveRecordMain = InventorymoveRecordMainConvert.INSTANCE.convert(createReqVO);
inventorymoveRecordMainMapper.insert(nventorymoveRecordMain);
InventorymoveRecordMainDO mainDO = InventorymoveRecordMainConvert.INSTANCE.convert(createReqVO); InventorymoveRecordMainDO mainDO = InventorymoveRecordMainConvert.INSTANCE.convert(createReqVO);
inventorymoveRecordMainMapper.insert(mainDO);
List<InventorymoveRecordDetailDO> subDOList = InventorymoveRecordMainConvert.INSTANCE.convertList03(createReqVO.getSubList()); List<InventorymoveRecordDetailDO> subDOList = InventorymoveRecordMainConvert.INSTANCE.convertList03(createReqVO.getSubList());
if("HoldToOkRequest".equals(mainDO.getBusinessType())){ if("HoldToOkRecord".equals(mainDO.getBusinessType())){
number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_RECORD.getCode()); number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToOkRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkRecord"); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkRecord");
} else if("OkToHoldRequest".equals(mainDO.getBusinessType())){ } else if("OkToHoldRecord".equals(mainDO.getBusinessType())){
number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_RECORD.getCode()); number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("OkToHoldRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRecord"); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRecord");
} else if("HoldToScrapRequest".equals(mainDO.getBusinessType())){ } else if("HoldToScrapRecord".equals(mainDO.getBusinessType())){
number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_RECORD.getCode()); number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToScrapRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRecord"); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRecord");
} else if("ScrapToHoldRequest".equals(mainDO.getBusinessType())){ } else if("ScrapToHoldRecord".equals(mainDO.getBusinessType())){
number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_RECORD.getCode()); number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("ScrapToHoldRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRecord"); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRecord");
} else if("OkToScrapRequest".equals(mainDO.getBusinessType())){ } else if("OkToScrapRecord".equals(mainDO.getBusinessType())){
number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode()); number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("OkToScrapRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRecord"); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRecord");
}else if("InventoryMoveRecord".equals(mainDO.getBusinessType())){
number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode());
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryMoveRecord");
} }
mainDO.setNumber(number); mainDO.setNumber(number);
mainDO.setBusinessType(businesstypeDO.getCode()); mainDO.setBusinessType(businesstypeDO.getCode());
@ -169,7 +163,7 @@ public class InventorymoveRecordMainServiceImpl implements InventorymoveRecordMa
//增加操作记录 //增加操作记录
trendsApi.createTrends(mainDO.getId(), "inventorymoveRecordMain", "增加了库存转移记录", TrendsTypeEnum.CREATE); trendsApi.createTrends(mainDO.getId(), "inventorymoveRecordMain", "增加了库存转移记录", TrendsTypeEnum.CREATE);
// 返回 // 返回
return inventorymoveRecordMain.getId(); return mainDO.getId();
} }
@Override @Override

234
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java

@ -150,37 +150,34 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
inventorymoveRequestDetailDO.setCreateTime(LocalDateTime.now()); inventorymoveRequestDetailDO.setCreateTime(LocalDateTime.now());
validatelocation(inventorymoveRequestMainDO, inventorymoveRequestDetailDO); validatelocation(inventorymoveRequestMainDO, inventorymoveRequestDetailDO);
ItembasicDO itembasicDO = validteitembasic(inventorymoveRequestDetailDO); ItembasicDO itembasicDO = validteitembasic(inventorymoveRequestDetailDO);
//校验库存余额是否存在
List<String> inventoryStatus = new ArrayList<>();
//隔离转合格申请 //隔离转合格申请
if ("HOLD".equals(inventorymoveRequestDetailDO.getFromInventoryStatus()) && "OK".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { if ("HOLD".equals(inventorymoveRequestDetailDO.getFromInventoryStatus()) && "OK".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) {
inventoryStatus.add("HOLD");
String OkToScrapRequest = "HoldToOkRequest"; String OkToScrapRequest = "HoldToOkRequest";
CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest); CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest);
} }
//合格转隔离申请 //合格转隔离申请
if ("OK".equals(inventorymoveRequestDetailDO.getFromInventoryStatus()) && "HOLD".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { else if ("OK".equals(inventorymoveRequestDetailDO.getFromInventoryStatus()) && "HOLD".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) {
inventoryStatus.add("OK");
String OkToScrapRequest = "OkToHoldRequest"; String OkToScrapRequest = "OkToHoldRequest";
CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest); CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest);
} }
//隔离转报废申请 //隔离转报废申请
if ("HOLD".equals(inventorymoveRequestDetailDO.getFromInventoryStatus()) && "SCRAP".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { else if ("HOLD".equals(inventorymoveRequestDetailDO.getFromInventoryStatus()) && "SCRAP".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) {
inventoryStatus.add("HOLD");
String OkToScrapRequest = "HoldToScrapRequest"; String OkToScrapRequest = "HoldToScrapRequest";
CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest); CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest);
} }
//报废转隔离申请 //报废转隔离申请
if ("SCRAP".equals(inventorymoveRequestDetailDO.getFromInventoryStatus())&& "HOLD".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { else if ("SCRAP".equals(inventorymoveRequestDetailDO.getFromInventoryStatus())&& "HOLD".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) {
inventoryStatus.add("SCRAP");
String OkToScrapRequest = "ScrapToHoldRequest"; String OkToScrapRequest = "ScrapToHoldRequest";
CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest); CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest);
} }
//合格转报废申请 //合格转报废申请
if ("OK".equals(inventorymoveRequestDetailDO.getFromInventoryStatus())&& "SCRAP".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { else if ("OK".equals(inventorymoveRequestDetailDO.getFromInventoryStatus())&& "SCRAP".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) {
inventoryStatus.add("SCRAP");
String OkToScrapRequest = "OkToScrapRequest"; String OkToScrapRequest = "OkToScrapRequest";
CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest); CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest);
}//库存转移申请
else {
String InventoryMoveRequest = "InventoryMoveRequest";
CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,InventoryMoveRequest);
} }
validtebalance(inventorymoveRequestDetailDO); validtebalance(inventorymoveRequestDetailDO);
inventorymoveRequestDetailDO.setToBatch(inventorymoveRequestDetailDO.getFromBatch()); inventorymoveRequestDetailDO.setToBatch(inventorymoveRequestDetailDO.getFromBatch());
@ -224,16 +221,14 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
@Override @Override
public void updateInventorymoveRequestMain(InventorymoveRequestMainUpdateReqVO updateReqVO) { public void updateInventorymoveRequestMain(InventorymoveRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("MoveRequest");
// 校验存在 // 校验存在
validateInventorymoveRequestMainExists(updateReqVO.getId()); validateInventorymoveRequestMainExists(updateReqVO.getId());
// 更新 // 更新
InventorymoveRequestMainDO inventorymoveRequestMainDO = validatorToUpdate(updateReqVO); InventorymoveRequestMainDO inventorymoveRequestMainDO = validatorToUpdate(updateReqVO);
if (RequestStatusEnum.HANDLING.getCode().equals(inventorymoveRequestMainDO.getStatus())) { if (RequestStatusEnum.HANDLING.getCode().equals(inventorymoveRequestMainDO.getStatus())) {
this.generateJob(inventorymoveRequestMainDO, inventorymoveRequestDetailMapper.selectList(inventorymoveRequestMainDO.getId()));
} }
trendsApi.createTrends(requestsettingDO.getId(), "MoveRequest", "增加了库存移动申请", TrendsTypeEnum.CREATE); trendsApi.createTrends(inventorymoveRequestMainDO.getId(), "InventoryMoveRequest", "增加了库存移动申请", TrendsTypeEnum.CREATE);
} }
private InventorymoveRequestMainDO validatorToUpdate(InventorymoveRequestMainUpdateReqVO updateReqVO) { private InventorymoveRequestMainDO validatorToUpdate(InventorymoveRequestMainUpdateReqVO updateReqVO) {
@ -294,73 +289,6 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
return inventorymoveRequestMainMapper.selectList(exportReqVO); return inventorymoveRequestMainMapper.selectList(exportReqVO);
} }
/**
* 主表导入验证
*
* @param mainDo
* @return
*/
private String validateInventorymoveRequestMainImport(InventorymoveRequestMainDO mainDo) {
StringBuilder message = new StringBuilder();
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
/**
* 校验来源/目标库位基础信息
*
* @param detailDo
* @return
*/
private void validatelocation(InventorymoveRequestMainDO mainDO, InventorymoveRequestDetailDO detailDo) {
LocationDO fromLocationDO = locationService.selectLocation(detailDo.getFromLocationCode());
if (fromLocationDO != null) {
detailDo.setFromLocationCode(fromLocationDO.getCode());
mainDO.setFromWarehouseCode(fromLocationDO.getWarehouseCode());
mainDO.setFromLocationTypes(fromLocationDO.getType());
mainDO.setFromAreaCodes(fromLocationDO.getAreaCode());
}
LocationDO toLocationDO = locationService.selectLocation(detailDo.getToLocationCode());
if (toLocationDO != null) {
detailDo.setToLocationCode(toLocationDO.getCode());
mainDO.setToWarehouseCode(toLocationDO.getWarehouseCode());
mainDO.setToLocationTypes(fromLocationDO.getType());
mainDO.setToAreaCodes(toLocationDO.getAreaCode());
}
}
/**
* 校验物品基础信息
*
* @param detailDo
* @return
*/
private ItembasicDO validteitembasic(InventorymoveRequestDetailDO detailDo) {
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setUom(itembasicDO.getUom());
detailDo.setProjectCode(itembasicDO.getProject());
return itembasicDO;
}
/**
* 校验库存余额是否存在
*
* @param detailDo
*/
private void validtebalance(InventorymoveRequestDetailDO detailDo) {
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add(detailDo.getFromInventoryStatus());
jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getFromPackingNumber()
, detailDo.getFromBatch(), detailDo.getFromLocationCode(), inventoryStatus);
}
/** /**
* 导入子表校验 * 导入子表校验
* @param mainDO * @param mainDO
@ -394,9 +322,7 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
// mainDo.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses()); // mainDo.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses());
// } // }
//隔离转合格申请 //隔离转合格申请
if ("HOLD".equals(detailDo.getFromInventoryStatus())) { if ("HOLD".equals(detailDo.getFromInventoryStatus()) && "OK".equals(detailDo.getToInventoryStatus())) {
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add("HOLD");
String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_REQUEST.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_REQUEST.getCode());
detailDo.setNumber(number); detailDo.setNumber(number);
// 校验业务类型 // 校验业务类型
@ -416,11 +342,8 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
mainDO.setRequestTime(LocalDateTime.now()); mainDO.setRequestTime(LocalDateTime.now());
} }
} }
//合格转隔离申请 //合格转隔离申请
if ("OK".equals(detailDo.getFromInventoryStatus())) { else if ("OK".equals(detailDo.getFromInventoryStatus()) && "HOLD".equals(detailDo.getToInventoryStatus())) {
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add("OK");
String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_REQUEST.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_REQUEST.getCode());
mainDO.setNumber(number); mainDO.setNumber(number);
// 校验业务类型 // 校验业务类型
@ -439,11 +362,8 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
} }
} }
//隔离转报废申请 //隔离转报废申请
if ("HOLD".equals(detailDo.getFromInventoryStatus())) { else if ("HOLD".equals(detailDo.getFromInventoryStatus()) && "SCRAP".equals(detailDo.getToInventoryStatus())) {
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add("HOLD");
String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_REQUEST.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_REQUEST.getCode());
mainDO.setNumber(number); mainDO.setNumber(number);
// 校验业务类型 // 校验业务类型
@ -462,11 +382,8 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
} }
} }
//报废转隔离申请 //报废转隔离申请
if ("SCRAP".equals(detailDo.getFromInventoryStatus())) { else if ("SCRAP".equals(detailDo.getFromInventoryStatus()) && "HOLD".equals(detailDo.getToInventoryStatus())) {
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add("SCRAP");
String number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_REQUEST.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_REQUEST.getCode());
mainDO.setNumber(number); mainDO.setNumber(number);
// 校验业务类型 // 校验业务类型
@ -485,9 +402,28 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
} }
} }
//合格转报废 //合格转报废
if ("Ok".equals(detailDo.getFromInventoryStatus())) { else if ("OK".equals(detailDo.getFromInventoryStatus()) && "SCRAP".equals(detailDo.getToInventoryStatus())) {
String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_REQUEST.getCode());
mainDO.setNumber(number);
// 校验业务类型
try {
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRequest");
mainDO.setBusinessType(businesstypeDO.getCode());
validationBusinesstype(detailDo,businesstypeDO,messageDetail);
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("OkToScrapRequest");
if (requestsettingDO != null) {
mainDO.setAutoAgree(requestsettingDO.getAutoAgree());
mainDO.setAutoCommit(requestsettingDO.getAutoCommit());
mainDO.setAutoExecute(requestsettingDO.getAutoExecute());
mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
}
//合格转报废
else if ("OK".equals(detailDo.getFromInventoryStatus()) && "SCRAP".equals(detailDo.getToInventoryStatus())) {
List<String> inventoryStatus = new ArrayList<>(); List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add("SCRAP"); inventoryStatus.add("SCRAP");
String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_REQUEST.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_REQUEST.getCode());
@ -497,7 +433,7 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
try { try {
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRequest"); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRequest");
mainDO.setBusinessType(businesstypeDO.getCode()); mainDO.setBusinessType(businesstypeDO.getCode());
validationBusinesstype(detailDo,businesstypeDO,messageDetail); validationBusinesstype(detailDo, businesstypeDO, messageDetail);
} catch (ServiceException ex) { } catch (ServiceException ex) {
messageDetail += ex.getMessage() + ","; messageDetail += ex.getMessage() + ",";
} }
@ -508,7 +444,28 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); mainDO.setAutoExecute(requestsettingDO.getAutoExecute());
mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
} }
}//库存转移申请
else {
String number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_MOVE_REQUEST.getCode());
mainDO.setNumber(number);
// 校验业务类型
try {
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryMoveRequest");
mainDO.setBusinessType(businesstypeDO.getCode());
validationBusinesstype(detailDo,businesstypeDO,messageDetail);
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InventoryMoveRequest");
if (requestsettingDO != null) {
mainDO.setAutoAgree(requestsettingDO.getAutoAgree());
mainDO.setAutoCommit(requestsettingDO.getAutoCommit());
mainDO.setAutoExecute(requestsettingDO.getAutoExecute());
mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
} }
try { try {
validtebalance(detailDo); validtebalance(detailDo);
} catch (Exception ex) { } catch (Exception ex) {
@ -643,6 +600,10 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode()); number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("OkToScrapRecord"); recordsettingDO = recordsettingService.selectRecordsettingExist("OkToScrapRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRecord"); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRecord");
}else {
number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("InventoryMoveRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryMoveRecord");
} }
inventorymoveRecordMainCreateReqVO.setNumber(number); inventorymoveRecordMainCreateReqVO.setNumber(number);
inventorymoveRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); inventorymoveRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode());
@ -699,6 +660,10 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_JOB.getCode()); number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_JOB.getCode());
jobsettingDO = jobsettingService.selectJobsettingExist("OkToScrapJob"); jobsettingDO = jobsettingService.selectJobsettingExist("OkToScrapJob");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapJob"); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapJob");
}else {
number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_MOVE_JOB.getCode());
jobsettingDO = jobsettingService.selectJobsettingExist("InventoryMoveJob");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryMoveJob");
} }
inventorymoveJobMainDO.setNumber(number); inventorymoveJobMainDO.setNumber(number);
inventorymoveJobMainDO.setRequestTime(mainDO.getRequestTime()); inventorymoveJobMainDO.setRequestTime(mainDO.getRequestTime());
@ -893,4 +858,73 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
public List<InventorymoveRequestMainDO> getInventorymoveRequestMainList(CustomConditions conditions) { public List<InventorymoveRequestMainDO> getInventorymoveRequestMainList(CustomConditions conditions) {
return inventorymoveRequestMainMapper.selectSeniorList(conditions); return inventorymoveRequestMainMapper.selectSeniorList(conditions);
} }
/**
* 主表导入验证
*
* @param mainDo
* @return
*/
private String validateInventorymoveRequestMainImport(InventorymoveRequestMainDO mainDo) {
StringBuilder message = new StringBuilder();
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
/**
* 校验来源/目标库位基础信息
*
* @param detailDo
* @return
*/
private void validatelocation(InventorymoveRequestMainDO mainDO, InventorymoveRequestDetailDO detailDo) {
LocationDO fromLocationDO = locationService.selectLocation(detailDo.getFromLocationCode());
if (fromLocationDO != null) {
detailDo.setFromLocationCode(fromLocationDO.getCode());
mainDO.setFromWarehouseCode(fromLocationDO.getWarehouseCode());
mainDO.setFromLocationTypes(fromLocationDO.getType());
mainDO.setFromAreaCodes(fromLocationDO.getAreaCode());
}
LocationDO toLocationDO = locationService.selectLocation(detailDo.getToLocationCode());
if (toLocationDO != null) {
detailDo.setToLocationCode(toLocationDO.getCode());
mainDO.setToWarehouseCode(toLocationDO.getWarehouseCode());
mainDO.setToLocationTypes(fromLocationDO.getType());
mainDO.setToAreaCodes(toLocationDO.getAreaCode());
}
}
/**
* 校验物品基础信息
*
* @param detailDo
* @return
*/
private ItembasicDO validteitembasic(InventorymoveRequestDetailDO detailDo) {
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setUom(itembasicDO.getUom());
detailDo.setProjectCode(itembasicDO.getProject());
return itembasicDO;
}
/**
* 校验库存余额是否存在
*
* @param detailDo
*/
private void validtebalance(InventorymoveRequestDetailDO detailDo) {
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add(detailDo.getFromInventoryStatus());
jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getFromPackingNumber()
, detailDo.getFromBatch(), detailDo.getFromLocationCode(), inventoryStatus);
}
} }

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/scrapRequest/ScrapRequestMainServiceImpl.java

@ -11,6 +11,7 @@ import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO;
import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO;
import com.win.module.wms.controller.scrapRecord.vo.ScrapRecordDetailCreateReqVO; import com.win.module.wms.controller.scrapRecord.vo.ScrapRecordDetailCreateReqVO;
import com.win.module.wms.controller.scrapRecord.vo.ScrapRecordMainCreateReqVO; import com.win.module.wms.controller.scrapRecord.vo.ScrapRecordMainCreateReqVO;
import com.win.module.wms.controller.scrapRequest.vo.*; import com.win.module.wms.controller.scrapRequest.vo.*;
@ -42,6 +43,7 @@ import com.win.module.wms.enums.job.JobStatusEnum;
import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.enums.request.RequestStatusState; import com.win.module.wms.enums.request.RequestStatusState;
import com.win.module.wms.service.expectin.ExpectinService; import com.win.module.wms.service.expectin.ExpectinService;
import com.win.module.wms.service.expectout.ExpectoutService;
import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.jobsetting.JobsettingService; import com.win.module.wms.service.jobsetting.JobsettingService;
import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.location.LocationService;
@ -104,7 +106,7 @@ public class ScrapRequestMainServiceImpl implements ScrapRequestMainService {
@Resource @Resource
private ScrapJobDetailMapper scrapJobDetailMapper; private ScrapJobDetailMapper scrapJobDetailMapper;
@Resource @Resource
private ExpectinService expectinService; private ExpectoutService expectoutService;
@Transactional @Transactional
@Override @Override
@ -193,7 +195,7 @@ public class ScrapRequestMainServiceImpl implements ScrapRequestMainService {
scrapJobMainMapper.insert(scrapJobMainDO); scrapJobMainMapper.insert(scrapJobMainDO);
// 任务 子表数据创建 // 任务 子表数据创建
List<ExpectinCreateReqVO> expectinCreateReqVOList = new ArrayList<>(); List<ExpectoutCreateReqVO> expectoutCreateReqVOList = new ArrayList<>();
List<ScrapJobDetailDO> scrapJobDetailDOList = new ArrayList<>(); List<ScrapJobDetailDO> scrapJobDetailDOList = new ArrayList<>();
for(ScrapRequestDetailDO scrapRequestDetailDO:detailDOList){ for(ScrapRequestDetailDO scrapRequestDetailDO:detailDOList){
ScrapJobDetailDO scrapJobDetailDO = ScrapJobDetailConvert.INSTANCE.convert(scrapRequestDetailDO); ScrapJobDetailDO scrapJobDetailDO = ScrapJobDetailConvert.INSTANCE.convert(scrapRequestDetailDO);
@ -208,18 +210,18 @@ public class ScrapRequestMainServiceImpl implements ScrapRequestMainService {
scrapJobDetailDOList.add(scrapJobDetailDO); scrapJobDetailDOList.add(scrapJobDetailDO);
//预计出 //预计出
ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO(); ExpectoutCreateReqVO expectinCreateReqVO = new ExpectoutCreateReqVO();
BeanUtils.copyProperties(scrapRequestDetailDO, expectinCreateReqVO); BeanUtils.copyProperties(scrapRequestDetailDO, expectinCreateReqVO);
expectinCreateReqVO.setJobNumber(number); expectinCreateReqVO.setJobNumber(number);
expectinCreateReqVO.setBusinessType(scrapJobMainDO.getBusinessType()); expectinCreateReqVO.setBusinessType(scrapJobMainDO.getBusinessType());
expectinCreateReqVO.setLocationCode(scrapRequestDetailDO.getFromLocationCode()); expectinCreateReqVO.setLocationCode(scrapRequestDetailDO.getFromLocationCode());
expectinCreateReqVO.setOwnerCode(scrapRequestDetailDO.getFromOwnerCode()); expectinCreateReqVO.setOwnerCode(scrapRequestDetailDO.getFromOwnerCode());
expectinCreateReqVO.setQty(scrapRequestDetailDO.getQty()); expectinCreateReqVO.setQty(scrapRequestDetailDO.getQty());
expectinCreateReqVOList.add(expectinCreateReqVO); expectoutCreateReqVOList.add(expectinCreateReqVO);
} }
scrapJobDetailMapper.insertBatch(scrapJobDetailDOList); scrapJobDetailMapper.insertBatch(scrapJobDetailDOList);
//增加预计入 //增加预计入
expectinService.createExpectin(expectinCreateReqVOList); expectoutService.createExpectout(expectoutCreateReqVOList);
trendsApi.createTrends(scrapJobMainDO.getId(), "ScrapJob", "报废出库申请生成报废出库任务", TrendsTypeEnum.CREATE); trendsApi.createTrends(scrapJobMainDO.getId(), "ScrapJob", "报废出库申请生成报废出库任务", TrendsTypeEnum.CREATE);
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java

@ -616,11 +616,11 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest
transferissueRecordDetailCreateReqVO.setNumber(number); transferissueRecordDetailCreateReqVO.setNumber(number);
transferissueRecordDetailCreateReqVO.setMasterId(String.valueOf(transferissueRecordMainDO.getId())); transferissueRecordDetailCreateReqVO.setMasterId(String.valueOf(transferissueRecordMainDO.getId()));
transferissueRecordDetailCreateReqVO.setFromPackingNumber(transferissueRequestDetailDO.getPackingNumber()); transferissueRecordDetailCreateReqVO.setFromPackingNumber(transferissueRequestDetailDO.getPackingNumber());
transferissueRecordDetailCreateReqVO.setToPackingNumber(transferissueRequestDetailDO.getPackingNumber()); // transferissueRecordDetailCreateReqVO.setToPackingNumber(transferissueRequestDetailDO.getPackingNumber());
transferissueRecordDetailCreateReqVO.setFromContainerNumber(transferissueRequestDetailDO.getContainerNumber()); transferissueRecordDetailCreateReqVO.setFromContainerNumber(transferissueRequestDetailDO.getContainerNumber());
transferissueRecordDetailCreateReqVO.setToContainerNumber(transferissueRequestDetailDO.getContainerNumber()); transferissueRecordDetailCreateReqVO.setToContainerNumber(transferissueRequestDetailDO.getContainerNumber());
transferissueRecordDetailCreateReqVO.setFromBatch(transferissueRequestDetailDO.getBatch()); transferissueRecordDetailCreateReqVO.setFromBatch(transferissueRequestDetailDO.getBatch());
transferissueRecordDetailCreateReqVO.setToBatch(transferissueRequestDetailDO.getBatch()); // transferissueRecordDetailCreateReqVO.setToBatch(transferissueRequestDetailDO.getBatch());
transferissueRecordDetailCreateReqVO.setInventoryStatus(transferissueRequestDetailDO.getInventoryStatus()); transferissueRecordDetailCreateReqVO.setInventoryStatus(transferissueRequestDetailDO.getInventoryStatus());
transferissueRecordDetailCreateReqVO.setFromLocationGroupCode(transferissueRequestDetailDO.getFromLocationCode()); transferissueRecordDetailCreateReqVO.setFromLocationGroupCode(transferissueRequestDetailDO.getFromLocationCode());
transferissueRecordDetailCreateReqVO.setFromAreaCode(transferissueRequestDetailDO.getFromLocationCode()); transferissueRecordDetailCreateReqVO.setFromAreaCode(transferissueRequestDetailDO.getFromLocationCode());

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobMainServiceImpl.java

@ -289,7 +289,7 @@ public class TransferreceiptJobMainServiceImpl implements TransferreceiptJobMain
transferreceiptRecordDetailDO.setToAreaCode(locationDO2.getAreaCode()); transferreceiptRecordDetailDO.setToAreaCode(locationDO2.getAreaCode());
transferreceiptRecordDetailDO.setToLocationGroupCode(locationDO2.getLocationGroupCode()); transferreceiptRecordDetailDO.setToLocationGroupCode(locationDO2.getLocationGroupCode());
transferreceiptRecordDetailDO.setInventoryStatus(transferreceiptJobDetailUpdateReqVO.getToInventoryStatus());//toInventoryStatus transferreceiptRecordDetailDO.setInventoryStatus(transferreceiptJobDetailUpdateReqVO.getToInventoryStatus());//toInventoryStatus
transferreceiptRecordDetailDO.setQty(new BigDecimal(transferreceiptJobDetailUpdateReqVO.getToQty() == null?"0":transferreceiptJobDetailUpdateReqVO.getToQty()));//toQty transferreceiptRecordDetailDO.setQty(transferreceiptJobDetailUpdateReqVO.getHandleQty());//toQty
transferreceiptRecordDetailDOList.add(transferreceiptRecordDetailDO); transferreceiptRecordDetailDOList.add(transferreceiptRecordDetailDO);
//添加库存事务list //添加库存事务list
@ -308,6 +308,7 @@ public class TransferreceiptJobMainServiceImpl implements TransferreceiptJobMain
transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVO.setBatch(transferreceiptRecordDetailDO.getFromBatch()); transactionCreateReqVO.setBatch(transferreceiptRecordDetailDO.getFromBatch());
transactionCreateReqVO.setWarehouseCode(transferreceiptRecordMainDO.getFromWarehouseCode()); transactionCreateReqVO.setWarehouseCode(transferreceiptRecordMainDO.getFromWarehouseCode());
transactionCreateReqVO.setQty(transferreceiptJobDetailUpdateReqVO.getHandleQty());
transactionCreateReqVO.setRecordNumber(number); transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setAmount(balanceDO.getAmount()); transactionCreateReqVO.setAmount(balanceDO.getAmount());
transactionCreateReqVO.setArriveDate(balanceDO.getArriveDate()); transactionCreateReqVO.setArriveDate(balanceDO.getArriveDate());

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedissueJob/UnplannedissueJobMainServiceImpl.java

@ -217,7 +217,6 @@ public class UnplannedissueJobMainServiceImpl implements UnplannedissueJobMainSe
throw new ServiceException(TRANSFERISSUE_JOB_MAIN_STATUS_ERROR); throw new ServiceException(TRANSFERISSUE_JOB_MAIN_STATUS_ERROR);
} }
//更新完成信息 //更新完成信息
Long userId = getLoginUserId(); Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId); AdminUserRespDTO userRespDTO = userApi.getUser(userId);
@ -296,7 +295,7 @@ public class UnplannedissueJobMainServiceImpl implements UnplannedissueJobMainSe
transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVO.setBatch(unplannedissueJobDetailDO.getBatch()); transactionCreateReqVO.setBatch(unplannedissueJobDetailDO.getBatch());
transactionCreateReqVO.setWarehouseCode(unplannedissueRecordMainDO.getFromWarehouseCode()); transactionCreateReqVO.setWarehouseCode(unplannedissueRecordMainDO.getFromWarehouseCode());
transactionCreateReqVO.setQty(unplannedissueJobDetailUpdateReqVO.getQty()); transactionCreateReqVO.setQty(unplannedissueJobDetailUpdateReqVO.getHandleQty());
transactionCreateReqVO.setRecordNumber(number); transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setId(null); transactionCreateReqVO.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVO); transactionCreateReqVOList.add(transactionCreateReqVO);

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/unplannedreceiptJob/UnplannedreceiptJobMainServiceImpl.java

@ -295,6 +295,7 @@ public class UnplannedreceiptJobMainServiceImpl implements UnplannedreceiptJobMa
transactionCreateReqVO.setBatch(unplannedreceiptRecordDetailDO.getBatch()); transactionCreateReqVO.setBatch(unplannedreceiptRecordDetailDO.getBatch());
transactionCreateReqVO.setWarehouseCode(unplannedreceiptRecordMainDO.getToWarehouseCode()); transactionCreateReqVO.setWarehouseCode(unplannedreceiptRecordMainDO.getToWarehouseCode());
transactionCreateReqVO.setRecordNumber(number); transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setQty(unplannedreceiptJobDetailUpdateReqVO.getHandleQty());
transactionCreateReqVO.setId(null); transactionCreateReqVO.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVO); transactionCreateReqVOList.add(transactionCreateReqVO);
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java

@ -372,7 +372,7 @@ public class JobUtils {
if (ifOutLocationType) { if (ifOutLocationType) {
return true; return true;
} else { } else {
throw exception(LOCATION_EXCEPTION, "出库库位" + plocationCode + "的库位类型" + locationDO.getType() + "与业务类型与业务类型" + throw exception(LOCATION_EXCEPTION, "出库库位" + plocationCode + "的库位类型" + locationDO.getType() + "与业务类型" +
businesstypeDO.getName() + "的出库库位类型" + businesstypeDO.getOutLocationTypes() + "不一致"); businesstypeDO.getName() + "的出库库位类型" + businesstypeDO.getOutLocationTypes() + "不一致");
} }
} }

Loading…
Cancel
Save