Browse Source

生成盘点调整。

master
刘忱 2 years ago
parent
commit
07fc065035
  1. 2
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRecord/CountRecordMainController.java
  3. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRequest/CountRequestMainController.java
  4. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRecord/vo/CountadjustRecordMainBaseVO.java
  5. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRecord/vo/CountadjustRecordMainExcelVO.java
  6. 11
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRecord/vo/CountadjustRecordMainExportReqVO.java
  7. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRecord/vo/CountadjustRecordMainPageReqVO.java
  8. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainBaseVO.java
  9. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainExcelVO.java
  10. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainExportReqVO.java
  11. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainPageReqVO.java
  12. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countadjustRecord/CountadjustRecordMainDO.java
  13. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countadjustRequest/CountadjustRequestMainDO.java
  14. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countJob/CountJobMainMapper.java
  15. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRecord/CountRecordDetailMapper.java
  16. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRequest/CountRequestDetailMapper.java
  17. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countadjustRecord/CountadjustRecordMainMapper.java
  18. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countadjustRequest/CountadjustRequestMainMapper.java
  19. 50
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countJob/CountJobMainServiceImpl.java
  20. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRecord/CountRecordMainService.java
  21. 78
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRecord/CountRecordMainServiceImpl.java
  22. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestMainService.java
  23. 67
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestMainServiceImpl.java
  24. 23
      win-module-wms/win-module-wms-biz/src/main/resources/mapper/countRecord/CountRecordDetailMapper.xml

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

@ -1028,7 +1028,7 @@ public interface ErrorCodeConstants {
//盘点调整申请ErrorCode //盘点调整申请ErrorCode
ErrorCode COUNTADJUST_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_156_000, "盘点调整申请主不存在"); ErrorCode COUNTADJUST_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_156_000, "盘点调整申请主不存在");
ErrorCode COUNTADJUST_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_156_001, "盘点调整申请子不存在"); ErrorCode COUNTADJUST_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_156_001, "盘点调整申请子不存在");
ErrorCode COUNTADJUST_REQUEST_EXISTS = new ErrorCode(1_000_156_001, "不能重复生成盘点调整"); ErrorCode COUNTADJUST_REQUEST_EXISTS = new ErrorCode(1_000_156_001, "不能生成盘点调整");
ErrorCode COUNTADJUST_REQUEST_RECORD_EXISTS = new ErrorCode(1_000_078_003, "盘点调整申请存在盘点调整记录单"); ErrorCode COUNTADJUST_REQUEST_RECORD_EXISTS = new ErrorCode(1_000_078_003, "盘点调整申请存在盘点调整记录单");
ErrorCode COUNTADJUST_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_078_004, "盘点调整申请状态不支持关闭"); ErrorCode COUNTADJUST_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_078_004, "盘点调整申请状态不支持关闭");
ErrorCode COUNTADJUST_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_078_005, "盘点调整申请状态不支持提交"); ErrorCode COUNTADJUST_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_078_005, "盘点调整申请状态不支持提交");

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRecord/CountRecordMainController.java

@ -8,7 +8,10 @@ import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.countRecord.vo.*; import com.win.module.wms.controller.countRecord.vo.CountRecordMainExcelVO;
import com.win.module.wms.controller.countRecord.vo.CountRecordMainExportReqVO;
import com.win.module.wms.controller.countRecord.vo.CountRecordMainPageReqVO;
import com.win.module.wms.controller.countRecord.vo.CountRecordMainRespVO;
import com.win.module.wms.convert.countRecord.CountRecordMainConvert; import com.win.module.wms.convert.countRecord.CountRecordMainConvert;
import com.win.module.wms.dal.dataobject.countRecord.CountRecordDetailDO; import com.win.module.wms.dal.dataobject.countRecord.CountRecordDetailDO;
import com.win.module.wms.dal.dataobject.countRecord.CountRecordMainDO; import com.win.module.wms.dal.dataobject.countRecord.CountRecordMainDO;
@ -16,7 +19,6 @@ import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.countRecord.CountRecordDetailService; import com.win.module.wms.service.countRecord.CountRecordDetailService;
import com.win.module.wms.service.countRecord.CountRecordMainService; import com.win.module.wms.service.countRecord.CountRecordMainService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -117,13 +119,4 @@ public class CountRecordMainController {
return resultList; return resultList;
} }
@PutMapping("/generate")
@Operation(summary = "生成盘点调整")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:count-record-main:generate')")
public CommonResult<Boolean> handleCountRequestMain(@RequestParam("id") Long id) {
int count = countRecordMainService.generateCountadjustRequest(id);
return success(count > 0);
}
} }

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRequest/CountRequestMainController.java

@ -249,4 +249,13 @@ public class CountRequestMainController {
return success(result > 0); return success(result > 0);
} }
@PutMapping("/generateCountadjustRequest")
@Operation(summary = "生成盘点调整")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:count-request-main:generate')")
public CommonResult<Boolean> generateCountadjustRequest(@RequestParam("id") Long id) {
int count = countRequestMainService.generateCountadjustRequest(id);
return success(count > 0);
}
} }

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRecord/vo/CountadjustRecordMainBaseVO.java

@ -1,16 +1,11 @@
package com.win.module.wms.controller.countadjustRecord.vo; package com.win.module.wms.controller.countadjustRecord.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.Data;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/** /**
@ -26,8 +21,8 @@ public class CountadjustRecordMainBaseVO {
@Schema(description = "申请单号") @Schema(description = "申请单号")
private String requestNumber; private String requestNumber;
@Schema(description = "盘点记录单号") @Schema(description = "盘点申请单号")
private String countRecordNumber; private String countRequestNumber;
@Schema(description = "仓库代码") @Schema(description = "仓库代码")
private String warehouseCode; private String warehouseCode;

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRecord/vo/CountadjustRecordMainExcelVO.java

@ -18,8 +18,8 @@ import java.time.LocalDateTime;
@Data @Data
public class CountadjustRecordMainExcelVO { public class CountadjustRecordMainExcelVO {
@ExcelProperty("申请单号") @ExcelProperty("盘点申请单号")
private String requestNumber; private String countRequestNumber;
@ExcelProperty("盘点记录单号") @ExcelProperty("盘点记录单号")
private String countRecordNumber; private String countRecordNumber;

11
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRecord/vo/CountadjustRecordMainExportReqVO.java

@ -1,12 +1,11 @@
package com.win.module.wms.controller.countadjustRecord.vo; package com.win.module.wms.controller.countadjustRecord.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import com.win.framework.common.pojo.PageParam; import lombok.Data;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 盘点调整记录主 Excel 导出 Request VO,参数和 CountadjustRecordMainPageReqVO 是一致的") @Schema(description = "管理后台 - 盘点调整记录主 Excel 导出 Request VO,参数和 CountadjustRecordMainPageReqVO 是一致的")
@ -16,8 +15,8 @@ public class CountadjustRecordMainExportReqVO {
@Schema(description = "申请单号") @Schema(description = "申请单号")
private String requestNumber; private String requestNumber;
@Schema(description = "盘点记录单号") @Schema(description = "盘点申请单号")
private String countRecordNumber; private String countRequestNumber;
@Schema(description = "仓库代码") @Schema(description = "仓库代码")
private String warehouseCode; private String warehouseCode;

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRecord/vo/CountadjustRecordMainPageReqVO.java

@ -1,10 +1,12 @@
package com.win.module.wms.controller.countadjustRecord.vo; package com.win.module.wms.controller.countadjustRecord.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.win.framework.common.pojo.PageParam; import com.win.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ -15,11 +17,11 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY
@ToString(callSuper = true) @ToString(callSuper = true)
public class CountadjustRecordMainPageReqVO extends PageParam { public class CountadjustRecordMainPageReqVO extends PageParam {
@Schema(description = "申请单号") @Schema(description = "盘点申请单号")
private String requestNumber; private String requestNumber;
@Schema(description = "盘点记录单号") @Schema(description = "盘点记录单号")
private String countRecordNumber; private String countRequestNumber;
@Schema(description = "仓库代码") @Schema(description = "仓库代码")
private String warehouseCode; private String warehouseCode;

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainBaseVO.java

@ -19,8 +19,8 @@ public class CountadjustRequestMainBaseVO {
@Schema(description = "id", example = "id") @Schema(description = "id", example = "id")
private Long id; private Long id;
@Schema(description = "盘点记录单号") @Schema(description = "盘点申请单号")
private String countRecordNumber; private String countRequestNumber;
@Schema(description = "仓库代码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "仓库代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "仓库代码不能为空") @NotNull(message = "仓库代码不能为空")

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainExcelVO.java

@ -10,7 +10,6 @@ import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
* 盘点调整申请主 Excel VO * 盘点调整申请主 Excel VO
* *
@ -19,8 +18,8 @@ import java.time.LocalDateTime;
@Data @Data
public class CountadjustRequestMainExcelVO { public class CountadjustRequestMainExcelVO {
@ExcelProperty("盘点记录单号") @ExcelProperty("盘点申请单号")
private String countRecordNumber; private String countRequestNumber;
@ExcelProperty("仓库代码") @ExcelProperty("仓库代码")
private String warehouseCode; private String warehouseCode;

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainExportReqVO.java

@ -12,8 +12,8 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY
@Data @Data
public class CountadjustRequestMainExportReqVO { public class CountadjustRequestMainExportReqVO {
@Schema(description = "盘点记录单号") @Schema(description = "盘点申请单号")
private String countRecordNumber; private String countRequestNumber;
@Schema(description = "仓库代码") @Schema(description = "仓库代码")
private String warehouseCode; private String warehouseCode;

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainPageReqVO.java

@ -17,8 +17,8 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY
@ToString(callSuper = true) @ToString(callSuper = true)
public class CountadjustRequestMainPageReqVO extends PageParam { public class CountadjustRequestMainPageReqVO extends PageParam {
@Schema(description = "盘点记录单号") @Schema(description = "盘点申请单号")
private String countRecordNumber; private String countRequestNumber;
@Schema(description = "仓库代码") @Schema(description = "仓库代码")
private String warehouseCode; private String warehouseCode;

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countadjustRecord/CountadjustRecordMainDO.java

@ -1,14 +1,12 @@
package com.win.module.wms.dal.dataobject.countadjustRecord; package com.win.module.wms.dal.dataobject.countadjustRecord;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sun.xml.bind.v2.TODO;
import com.win.framework.mybatis.core.dataobject.BaseDO;
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.win.framework.mybatis.core.dataobject.BaseDO;
/** /**
* 盘点调整记录主 DO * 盘点调整记录主 DO
@ -34,9 +32,9 @@ public class CountadjustRecordMainDO extends BaseDO {
*/ */
private String requestNumber; private String requestNumber;
/** /**
* 盘点记录单号 * 盘点申请单号
*/ */
private String countRecordNumber; private String countRequestNumber;
/** /**
* 仓库代码 * 仓库代码
*/ */

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countadjustRequest/CountadjustRequestMainDO.java

@ -28,9 +28,9 @@ public class CountadjustRequestMainDO extends BaseDO {
@TableId @TableId
private Long id; private Long id;
/** /**
* 盘点记录单号 * 盘点申请单号
*/ */
private String countRecordNumber; private String countRequestNumber;
/** /**
* 仓库代码 * 仓库代码
*/ */

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countJob/CountJobMainMapper.java

@ -133,14 +133,16 @@ public interface CountJobMainMapper extends BaseMapperX<CountJobMainDO> {
} }
/** /**
* 根据类型数和申请单号组查询任务数量 * 查询未完成阶段任务
* @param types * @param types 状态类型
* @param requestNumber * @param requestNumber 申请编号
* @return * @param stage 阶段
* @return 数量
*/ */
default Long selectListCount(Collection<String> types, String requestNumber) { default Long selectListCount(Collection<String> types, String requestNumber, String stage) {
return selectCount(new LambdaQueryWrapperX<CountJobMainDO>() return selectCount(new LambdaQueryWrapperX<CountJobMainDO>()
.in(CountJobMainDO::getStatus, types) .in(CountJobMainDO::getStatus, types)
.eq(CountJobMainDO::getStage, stage)
.eq(CountJobMainDO::getRequestNumber, requestNumber)); .eq(CountJobMainDO::getRequestNumber, requestNumber));
} }

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRecord/CountRecordDetailMapper.java

@ -9,6 +9,7 @@ import com.win.module.wms.controller.countRecord.vo.CountRecordDetailExportReqVO
import com.win.module.wms.controller.countRecord.vo.CountRecordDetailPageReqVO; import com.win.module.wms.controller.countRecord.vo.CountRecordDetailPageReqVO;
import com.win.module.wms.dal.dataobject.countRecord.CountRecordDetailDO; import com.win.module.wms.dal.dataobject.countRecord.CountRecordDetailDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -90,4 +91,17 @@ public interface CountRecordDetailMapper extends BaseMapperX<CountRecordDetailDO
.eq(CountRecordDetailDO::getMasterId, masterId)); .eq(CountRecordDetailDO::getMasterId, masterId));
} }
/**
* 查询申请单号下未盘平的数量
* @param requestNumber 申请单号
* @return 未盘平数量
*/
Long getDifferenceCount(@Param("requestNumber") String requestNumber);
/**
* 查询申请单号下未盘平的数量
* @param requestNumber 申请单号
* @return 未盘平数量
*/
List<CountRecordDetailDO> getDifferenceList(@Param("requestNumber") String requestNumber);
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countRequest/CountRequestDetailMapper.java

@ -81,7 +81,7 @@ public interface CountRequestDetailMapper extends BaseMapperX<CountRequestDetail
default List<CountRequestDetailDO> selectDifferenceList(Long masterId, String requestNumber) { default List<CountRequestDetailDO> selectDifferenceList(Long masterId, String requestNumber) {
QueryWrapper<CountRequestDetailDO> queryWrapper = new QueryWrapper<>(); QueryWrapper<CountRequestDetailDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("master_id", masterId); queryWrapper.eq("master_id", masterId);
queryWrapper.inSql("", "SELECT d1.count_detail_number FROM record_count_detail d1,(SELECT master_id,count_detail_number,MAX(create_time) create_time FROM record_count_detail WHERE master_id IN(SELECT id FROM record_count_main WHERE request_number='" + requestNumber + "')GROUP BY master_id,count_detail_number) d2 WHERE d1.master_id=d2.master_id AND d1.count_detail_number=d2.count_detail_number AND d1.create_time=d2.create_time AND d1.qty!=d1.count_qty"); queryWrapper.inSql("count_detail_number", "SELECT d1.count_detail_number FROM record_count_detail d1,(SELECT master_id,count_detail_number,MAX(create_time) create_time FROM record_count_detail WHERE master_id IN(SELECT id FROM record_count_main WHERE request_number='" + requestNumber + "') GROUP BY master_id,count_detail_number) d2 WHERE d1.master_id=d2.master_id AND d1.count_detail_number=d2.count_detail_number AND d1.create_time=d2.create_time AND d1.qty!=d1.count_qty");
return selectList(queryWrapper); return selectList(queryWrapper);
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countadjustRecord/CountadjustRecordMainMapper.java

@ -23,7 +23,7 @@ public interface CountadjustRecordMainMapper extends BaseMapperX<CountadjustReco
default PageResult<CountadjustRecordMainDO> selectPage(CountadjustRecordMainPageReqVO reqVO) { default PageResult<CountadjustRecordMainDO> selectPage(CountadjustRecordMainPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<CountadjustRecordMainDO>() return selectPage(reqVO, new LambdaQueryWrapperX<CountadjustRecordMainDO>()
.eqIfPresent(CountadjustRecordMainDO::getRequestNumber, reqVO.getRequestNumber()) .eqIfPresent(CountadjustRecordMainDO::getRequestNumber, reqVO.getRequestNumber())
.eqIfPresent(CountadjustRecordMainDO::getCountRecordNumber, reqVO.getCountRecordNumber()) .eqIfPresent(CountadjustRecordMainDO::getCountRequestNumber, reqVO.getCountRequestNumber())
.eqIfPresent(CountadjustRecordMainDO::getWarehouseCode, reqVO.getWarehouseCode()) .eqIfPresent(CountadjustRecordMainDO::getWarehouseCode, reqVO.getWarehouseCode())
.eqIfPresent(CountadjustRecordMainDO::getOutTransactionType, reqVO.getOutTransactionType()) .eqIfPresent(CountadjustRecordMainDO::getOutTransactionType, reqVO.getOutTransactionType())
.eqIfPresent(CountadjustRecordMainDO::getInTransactionType, reqVO.getInTransactionType()) .eqIfPresent(CountadjustRecordMainDO::getInTransactionType, reqVO.getInTransactionType())
@ -48,7 +48,7 @@ public interface CountadjustRecordMainMapper extends BaseMapperX<CountadjustReco
default List<CountadjustRecordMainDO> selectList(CountadjustRecordMainExportReqVO reqVO) { default List<CountadjustRecordMainDO> selectList(CountadjustRecordMainExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<CountadjustRecordMainDO>() return selectList(new LambdaQueryWrapperX<CountadjustRecordMainDO>()
.eqIfPresent(CountadjustRecordMainDO::getRequestNumber, reqVO.getRequestNumber()) .eqIfPresent(CountadjustRecordMainDO::getRequestNumber, reqVO.getRequestNumber())
.eqIfPresent(CountadjustRecordMainDO::getCountRecordNumber, reqVO.getCountRecordNumber()) .eqIfPresent(CountadjustRecordMainDO::getCountRequestNumber, reqVO.getCountRequestNumber())
.eqIfPresent(CountadjustRecordMainDO::getWarehouseCode, reqVO.getWarehouseCode()) .eqIfPresent(CountadjustRecordMainDO::getWarehouseCode, reqVO.getWarehouseCode())
.eqIfPresent(CountadjustRecordMainDO::getOutTransactionType, reqVO.getOutTransactionType()) .eqIfPresent(CountadjustRecordMainDO::getOutTransactionType, reqVO.getOutTransactionType())
.eqIfPresent(CountadjustRecordMainDO::getInTransactionType, reqVO.getInTransactionType()) .eqIfPresent(CountadjustRecordMainDO::getInTransactionType, reqVO.getInTransactionType())

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countadjustRequest/CountadjustRequestMainMapper.java

@ -22,7 +22,7 @@ public interface CountadjustRequestMainMapper extends BaseMapperX<CountadjustReq
default PageResult<CountadjustRequestMainDO> selectPage(CountadjustRequestMainPageReqVO reqVO) { default PageResult<CountadjustRequestMainDO> selectPage(CountadjustRequestMainPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<CountadjustRequestMainDO>() return selectPage(reqVO, new LambdaQueryWrapperX<CountadjustRequestMainDO>()
.eqIfPresent(CountadjustRequestMainDO::getCountRecordNumber, reqVO.getCountRecordNumber()) .eqIfPresent(CountadjustRequestMainDO::getCountRequestNumber, reqVO.getCountRequestNumber())
.eqIfPresent(CountadjustRequestMainDO::getWarehouseCode, reqVO.getWarehouseCode()) .eqIfPresent(CountadjustRequestMainDO::getWarehouseCode, reqVO.getWarehouseCode())
.eqIfPresent(CountadjustRequestMainDO::getNumber, reqVO.getNumber()) .eqIfPresent(CountadjustRequestMainDO::getNumber, reqVO.getNumber())
.eqIfPresent(CountadjustRequestMainDO::getBusinessType, reqVO.getBusinessType()) .eqIfPresent(CountadjustRequestMainDO::getBusinessType, reqVO.getBusinessType())
@ -46,7 +46,7 @@ public interface CountadjustRequestMainMapper extends BaseMapperX<CountadjustReq
} }
default List<CountadjustRequestMainDO> selectList(CountadjustRequestMainExportReqVO reqVO) { default List<CountadjustRequestMainDO> selectList(CountadjustRequestMainExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<CountadjustRequestMainDO>() return selectList(new LambdaQueryWrapperX<CountadjustRequestMainDO>()
.eqIfPresent(CountadjustRequestMainDO::getCountRecordNumber, reqVO.getCountRecordNumber()) .eqIfPresent(CountadjustRequestMainDO::getCountRequestNumber, reqVO.getCountRequestNumber())
.eqIfPresent(CountadjustRequestMainDO::getWarehouseCode, reqVO.getWarehouseCode()) .eqIfPresent(CountadjustRequestMainDO::getWarehouseCode, reqVO.getWarehouseCode())
.eqIfPresent(CountadjustRequestMainDO::getNumber, reqVO.getNumber()) .eqIfPresent(CountadjustRequestMainDO::getNumber, reqVO.getNumber())
.eqIfPresent(CountadjustRequestMainDO::getBusinessType, reqVO.getBusinessType()) .eqIfPresent(CountadjustRequestMainDO::getBusinessType, reqVO.getBusinessType())
@ -74,8 +74,4 @@ public interface CountadjustRequestMainMapper extends BaseMapperX<CountadjustReq
return selectOne(CountadjustRequestMainDO::getNumber, number); return selectOne(CountadjustRequestMainDO::getNumber, number);
} }
default CountadjustRequestMainDO selectByCountRecordNumber(String countRecordNumber) {
return selectOne(CountadjustRequestMainDO::getCountRecordNumber, countRecordNumber);
}
} }

50
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countJob/CountJobMainServiceImpl.java

@ -18,11 +18,13 @@ import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.countJob.CountJobMainDO; import com.win.module.wms.dal.dataobject.countJob.CountJobMainDO;
import com.win.module.wms.dal.dataobject.countRecord.CountRecordDetailDO; import com.win.module.wms.dal.dataobject.countRecord.CountRecordDetailDO;
import com.win.module.wms.dal.dataobject.countRecord.CountRecordMainDO; import com.win.module.wms.dal.dataobject.countRecord.CountRecordMainDO;
import com.win.module.wms.dal.dataobject.countRequest.CountRequestDetailDO;
import com.win.module.wms.dal.dataobject.countRequest.CountRequestMainDO; import com.win.module.wms.dal.dataobject.countRequest.CountRequestMainDO;
import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.mysql.countJob.CountJobMainMapper; import com.win.module.wms.dal.mysql.countJob.CountJobMainMapper;
import com.win.module.wms.dal.mysql.countRecord.CountRecordDetailMapper; import com.win.module.wms.dal.mysql.countRecord.CountRecordDetailMapper;
import com.win.module.wms.dal.mysql.countRecord.CountRecordMainMapper; import com.win.module.wms.dal.mysql.countRecord.CountRecordMainMapper;
import com.win.module.wms.dal.mysql.countRequest.CountRequestDetailMapper;
import com.win.module.wms.dal.mysql.countRequest.CountRequestMainMapper; import com.win.module.wms.dal.mysql.countRequest.CountRequestMainMapper;
import com.win.module.wms.dal.mysql.location.LocationMapper; import com.win.module.wms.dal.mysql.location.LocationMapper;
import com.win.module.wms.enums.job.JobStatusEnum; import com.win.module.wms.enums.job.JobStatusEnum;
@ -66,6 +68,8 @@ public class CountJobMainServiceImpl implements CountJobMainService {
@Resource @Resource
private CountRequestMainMapper countRequestMainMapper; private CountRequestMainMapper countRequestMainMapper;
@Resource @Resource
private CountRequestDetailMapper countRequestDetailMapper;
@Resource
private LocationMapper locationMapper; private LocationMapper locationMapper;
@Resource @Resource
private JobUtils jobUtils; private JobUtils jobUtils;
@ -194,7 +198,9 @@ public class CountJobMainServiceImpl implements CountJobMainService {
countRecordMainDO.setUpdater(null); countRecordMainDO.setUpdater(null);
countRecordMainDO.setUpdateTime(null); countRecordMainDO.setUpdateTime(null);
countRecordMainMapper.insert(countRecordMainDO); countRecordMainMapper.insert(countRecordMainDO);
CountRequestMainDO countRequestMainDO = countRequestMainMapper.selectByNumber(countJobMainDO.getRequestNumber());
List<CountJobDetailUpdateReqVO> countJobDetailUpdateReqVOList = countJobMainUpdateReqVO.getSubList(); List<CountJobDetailUpdateReqVO> countJobDetailUpdateReqVOList = countJobMainUpdateReqVO.getSubList();
List<CountRequestDetailDO> countRequestDetailDOList = new ArrayList<>();
List<CountRecordDetailDO> countRecordDetailDOList = new ArrayList<>(); List<CountRecordDetailDO> countRecordDetailDOList = new ArrayList<>();
for(CountJobDetailUpdateReqVO countJobDetailUpdateReqVO : countJobDetailUpdateReqVOList) { for(CountJobDetailUpdateReqVO countJobDetailUpdateReqVO : countJobDetailUpdateReqVOList) {
CountRecordDetailDO countRecordDetailDO = new CountRecordDetailDO(); CountRecordDetailDO countRecordDetailDO = new CountRecordDetailDO();
@ -212,21 +218,57 @@ public class CountJobMainServiceImpl implements CountJobMainService {
countRecordDetailDO.setUpdater(null); countRecordDetailDO.setUpdater(null);
countRecordDetailDO.setUpdateTime(null); countRecordDetailDO.setUpdateTime(null);
countRecordDetailDOList.add(countRecordDetailDO); countRecordDetailDOList.add(countRecordDetailDO);
//新增任务子数据,回写到申请子表中
if(countJobDetailUpdateReqVO.getId() == 0) {
CountRequestDetailDO countRequestDetailDO = new CountRequestDetailDO();
BeanUtils.copyProperties(countJobDetailUpdateReqVO, countRequestDetailDO);
countRequestDetailDO.setMasterId(countRequestMainDO.getId());
countRequestDetailDO.setNumber(countRequestMainDO.getNumber());
countRequestDetailDO.setId(null);
countRequestDetailDO.setCreator(null);
countRequestDetailDO.setCreateTime(null);
countRequestDetailDO.setUpdater(null);
countRequestDetailDO.setUpdateTime(null);
countRequestDetailDOList.add(countRequestDetailDO);
}
} }
countRecordDetailMapper.insertBatch(countRecordDetailDOList); countRecordDetailMapper.insertBatch(countRecordDetailDOList);
List<String> typeList = new ArrayList<>(); List<String> typeList = new ArrayList<>();
typeList.add(JobStatusEnum.PENDING.getCode()); typeList.add(JobStatusEnum.PENDING.getCode());
typeList.add(JobStatusEnum.PROCESSING.getCode()); typeList.add(JobStatusEnum.PROCESSING.getCode());
Long count = countJobMainMapper.selectListCount(typeList, countJobMainDO.getRequestNumber()); Long notFinishedCount = countJobMainMapper.selectListCount(typeList, countJobMainDO.getRequestNumber(), countJobMainDO.getStage());
CountRequestMainDO countRequestMainDO = countRequestMainMapper.selectByNumber(countJobMainDO.getRequestNumber()); //查询本阶段为完成的任务数,都完成回写申请状态和申请中任务状态
//申请单下所有任务全部完成 if(notFinishedCount == 0) {
if(count == 0) { switch (countJobMainDO.getStage()) {
case "INITIAL_COUNT":
countRequestMainDO.setJobStatus1(JobStatusEnum.COMPLETED.getCode());
break;
case "RECOUNT":
countRequestMainDO.setJobStatus2(JobStatusEnum.COMPLETED.getCode());
break;
case "AUDIT_COUNT":
countRequestMainDO.setJobStatus3(JobStatusEnum.COMPLETED.getCode());
break;
}
countRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); countRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode());
// 判断盘点记录中是否有未盘平,有的话,更新申请中盘点调整数量状态
long differenceCount = countRecordDetailMapper.getDifferenceCount(countRequestMainDO.getNumber());
//生成盘点调整状态1不可生成2可生成3已生成4不需要生成
if(differenceCount == 0) {//全部盘平
countRequestMainDO.setCountAdjustStatus("4");
} else {
countRequestMainDO.setCountAdjustStatus("2");
}
countRequestMainMapper.updateById(countRequestMainDO); countRequestMainMapper.updateById(countRequestMainDO);
} else if(countRequestMainDO.getStatus().equals(RequestStatusEnum.HANDLING.getCode())) {//部分完成 } else if(countRequestMainDO.getStatus().equals(RequestStatusEnum.HANDLING.getCode())) {//部分完成
countRequestMainDO.setCountAdjustStatus("1");
countRequestMainDO.setStatus(RequestStatusEnum.PARTIAL.getCode()); countRequestMainDO.setStatus(RequestStatusEnum.PARTIAL.getCode());
countRequestMainMapper.updateById(countRequestMainDO); countRequestMainMapper.updateById(countRequestMainDO);
} }
//盘点申请中没有,但盘点任务盘出来多的物品,回写到盘点申请子表中
if(!countRequestDetailDOList.isEmpty()) {
countRequestDetailMapper.insertBatch(countRequestDetailDOList);
}
return number; return number;
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRecord/CountRecordMainService.java

@ -46,10 +46,4 @@ public interface CountRecordMainService {
*/ */
List<CountRecordMainDO> getCountRecordMainList(CustomConditions conditions); List<CountRecordMainDO> getCountRecordMainList(CustomConditions conditions);
/**
* 根据盘点记录生成库存调整申请
* @param countRecordMainId
* @return
*/
int generateCountadjustRequest(Long countRecordMainId);
} }

78
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRecord/CountRecordMainServiceImpl.java

@ -1,38 +1,24 @@
package com.win.module.wms.service.countRecord; package com.win.module.wms.service.countRecord;
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;
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.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.countRecord.vo.CountRecordMainExportReqVO; import com.win.module.wms.controller.countRecord.vo.CountRecordMainExportReqVO;
import com.win.module.wms.controller.countRecord.vo.CountRecordMainPageReqVO; import com.win.module.wms.controller.countRecord.vo.CountRecordMainPageReqVO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.countRecord.CountRecordDetailDO;
import com.win.module.wms.dal.dataobject.countRecord.CountRecordMainDO; import com.win.module.wms.dal.dataobject.countRecord.CountRecordMainDO;
import com.win.module.wms.dal.dataobject.countadjustRequest.CountadjustRequestDetailDO;
import com.win.module.wms.dal.dataobject.countadjustRequest.CountadjustRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.mysql.countRecord.CountRecordDetailMapper; import com.win.module.wms.dal.mysql.countRecord.CountRecordDetailMapper;
import com.win.module.wms.dal.mysql.countRecord.CountRecordMainMapper; import com.win.module.wms.dal.mysql.countRecord.CountRecordMainMapper;
import com.win.module.wms.dal.mysql.countadjustRequest.CountadjustRequestDetailMapper; import com.win.module.wms.dal.mysql.countadjustRequest.CountadjustRequestDetailMapper;
import com.win.module.wms.dal.mysql.countadjustRequest.CountadjustRequestMainMapper; import com.win.module.wms.dal.mysql.countadjustRequest.CountadjustRequestMainMapper;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.util.JobUtils; import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import static com.win.module.wms.enums.ErrorCodeConstants.COUNTADJUST_REQUEST_EXISTS;
/** /**
* 盘点记录主 Service 实现类 * 盘点记录主 Service 实现类
* *
@ -77,68 +63,4 @@ public class CountRecordMainServiceImpl implements CountRecordMainService {
return countRecordMainMapper.selectList(conditions); return countRecordMainMapper.selectList(conditions);
} }
@Override
@Transactional
public int generateCountadjustRequest(Long countRecordMainId) {
CountRecordMainDO countRecordMainDO = countRecordMainMapper.selectById(countRecordMainId);
CountadjustRequestMainDO countadjustRequestMainDOExists = countadjustRequestMainMapper.selectByCountRecordNumber(countRecordMainDO.getNumber());
if(countadjustRequestMainDOExists != null) {
throw new ServiceException(COUNTADJUST_REQUEST_EXISTS);
}
List<CountRecordDetailDO> countRecordDetailDOList = countRecordDetailMapper.selectList(countRecordMainId);
List<CountadjustRequestDetailDO> countadjustRequestDetailDOList = new ArrayList<>();
int countDetailNumber = 1;
for(CountRecordDetailDO countRecordDetailDO : countRecordDetailDOList) {
//盘点记录数量不一致时生成盘点调整申请
if(countRecordDetailDO.getCountQty().compareTo(countRecordDetailDO.getQty()) != 0) {
CountadjustRequestDetailDO countadjustRequestDetailDO = new CountadjustRequestDetailDO();
BeanUtils.copyProperties(countRecordDetailDO, countadjustRequestDetailDO);
countadjustRequestDetailDO.setCountDetailNumber(String.valueOf(countDetailNumber));
countadjustRequestDetailDO.setInventoryQty(countRecordDetailDO.getQty());
countadjustRequestDetailDO.setCountQty(countRecordDetailDO.getCountQty());
//库存数量减盘点数量等于调整数量
countadjustRequestDetailDO.setAdjustQty(countRecordDetailDO.getQty().subtract(countRecordDetailDO.getCountQty()));
//调整数量的绝对值
countadjustRequestDetailDO.setQty(countadjustRequestDetailDO.getAdjustQty().abs());
countadjustRequestDetailDO.setId(null);
countadjustRequestDetailDO.setCreator(null);
countadjustRequestDetailDO.setCreateTime(null);
countadjustRequestDetailDO.setUpdater(null);
countadjustRequestDetailDO.setUpdateTime(null);
countadjustRequestDetailDOList.add(countadjustRequestDetailDO);
countDetailNumber++;
}
}
int result = 0;
//增加库存调整
if(!countadjustRequestDetailDOList.isEmpty()) {
CountadjustRequestMainDO countadjustRequestMainDO = new CountadjustRequestMainDO();
BeanUtils.copyProperties(countRecordMainDO, countadjustRequestMainDO);
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("CountAdjustRequest");
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CountAdjustRequest");
String adjustNumber = serialNumberApi.generateCode(RuleCodeEnum.COUNT_ADJUST_REQUEST.getCode());
countadjustRequestMainDO.setNumber(adjustNumber);
countadjustRequestMainDO.setBusinessType(businesstypeDO.getCode());
countadjustRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree());
countadjustRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit());
countadjustRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute());
countadjustRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
countadjustRequestMainDO.setCountRecordNumber(countRecordMainDO.getNumber());
countadjustRequestMainDO.setStatus(RequestStatusEnum.NEW.getCode());
countadjustRequestMainDO.setId(null);
countadjustRequestMainDO.setCreator(null);
countadjustRequestMainDO.setCreateTime(null);
countadjustRequestMainDO.setUpdater(null);
countadjustRequestMainDO.setUpdateTime(null);
result = countadjustRequestMainMapper.insert(countadjustRequestMainDO);
for(CountadjustRequestDetailDO countadjustRequestDetailDO : countadjustRequestDetailDOList) {
countadjustRequestDetailDO.setMasterId(countadjustRequestMainDO.getId());
countadjustRequestDetailDO.setNumber(adjustNumber);
}
countadjustRequestDetailMapper.insertBatch(countadjustRequestDetailDOList);
trendsApi.createTrends(countadjustRequestMainDO.getId(), "countadjustRequest", "生成了盘点调整申请", TrendsTypeEnum.CREATE);
}
return result;
}
} }

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestMainService.java

@ -129,4 +129,11 @@ public interface CountRequestMainService {
* @return 更新数量 * @return 更新数量
*/ */
Integer createSuperviseCountJob(CountRequestMainUpdateReqVO updateReqVO); Integer createSuperviseCountJob(CountRequestMainUpdateReqVO updateReqVO);
/**
* 根据盘点记录生成库存调整申请
* @param countRequestMainId 盘点申请id
* @return 更新数量
*/
int generateCountadjustRequest(Long countRequestMainId);
} }

67
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestMainServiceImpl.java

@ -20,8 +20,11 @@ import com.win.module.wms.dal.dataobject.countJob.CountJobDetailDO;
import com.win.module.wms.dal.dataobject.countJob.CountJobMainDO; import com.win.module.wms.dal.dataobject.countJob.CountJobMainDO;
import com.win.module.wms.dal.dataobject.countPlan.CountPlanDetailDO; import com.win.module.wms.dal.dataobject.countPlan.CountPlanDetailDO;
import com.win.module.wms.dal.dataobject.countPlan.CountPlanMainDO; import com.win.module.wms.dal.dataobject.countPlan.CountPlanMainDO;
import com.win.module.wms.dal.dataobject.countRecord.CountRecordDetailDO;
import com.win.module.wms.dal.dataobject.countRequest.CountRequestDetailDO; import com.win.module.wms.dal.dataobject.countRequest.CountRequestDetailDO;
import com.win.module.wms.dal.dataobject.countRequest.CountRequestMainDO; import com.win.module.wms.dal.dataobject.countRequest.CountRequestMainDO;
import com.win.module.wms.dal.dataobject.countadjustRequest.CountadjustRequestDetailDO;
import com.win.module.wms.dal.dataobject.countadjustRequest.CountadjustRequestMainDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO; import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO;
import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.location.LocationDO;
@ -34,6 +37,8 @@ import com.win.module.wms.dal.mysql.countRecord.CountRecordDetailMapper;
import com.win.module.wms.dal.mysql.countRecord.CountRecordMainMapper; import com.win.module.wms.dal.mysql.countRecord.CountRecordMainMapper;
import com.win.module.wms.dal.mysql.countRequest.CountRequestDetailMapper; import com.win.module.wms.dal.mysql.countRequest.CountRequestDetailMapper;
import com.win.module.wms.dal.mysql.countRequest.CountRequestMainMapper; import com.win.module.wms.dal.mysql.countRequest.CountRequestMainMapper;
import com.win.module.wms.dal.mysql.countadjustRequest.CountadjustRequestDetailMapper;
import com.win.module.wms.dal.mysql.countadjustRequest.CountadjustRequestMainMapper;
import com.win.module.wms.enums.job.JobStatusEnum; 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;
@ -44,6 +49,7 @@ import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.service.shift.ShiftService; import com.win.module.wms.service.shift.ShiftService;
import com.win.module.wms.service.supplieritem.SupplieritemService; import com.win.module.wms.service.supplieritem.SupplieritemService;
import com.win.module.wms.util.JobUtils; import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
@ -97,6 +103,10 @@ public class CountRequestMainServiceImpl implements CountRequestMainService {
private JobsettingService jobsettingService; private JobsettingService jobsettingService;
@Resource @Resource
private CountJobDetailMapper countJobDetailMapper; private CountJobDetailMapper countJobDetailMapper;
@Resource
private CountadjustRequestMainMapper countadjustRequestMainMapper;
@Resource
private CountadjustRequestDetailMapper countadjustRequestDetailMapper;
@Override @Override
@Transactional @Transactional
@ -432,6 +442,63 @@ public class CountRequestMainServiceImpl implements CountRequestMainService {
} }
} }
@Override
@Transactional
public int generateCountadjustRequest(Long countRecordMainId) {
CountRequestMainDO countRequestMainDO = countRequestMainMapper.selectById(countRecordMainId);
if("2".equals(countRequestMainDO.getCountAdjustStatus())) {
throw new ServiceException(COUNTADJUST_REQUEST_EXISTS);
}
List<CountRecordDetailDO> countRecordDetailDOList = countRecordDetailMapper.getDifferenceList(countRequestMainDO.getNumber());
List<CountadjustRequestDetailDO> countadjustRequestDetailDOList = new ArrayList<>();
for(CountRecordDetailDO countRecordDetailDO : countRecordDetailDOList) {
CountadjustRequestDetailDO countadjustRequestDetailDO = new CountadjustRequestDetailDO();
BeanUtils.copyProperties(countRecordDetailDO, countadjustRequestDetailDO);
countadjustRequestDetailDO.setInventoryQty(countRecordDetailDO.getQty());
countadjustRequestDetailDO.setCountQty(countRecordDetailDO.getCountQty());
//库存数量减盘点数量等于调整数量
countadjustRequestDetailDO.setAdjustQty(countRecordDetailDO.getQty().subtract(countRecordDetailDO.getCountQty()));
//调整数量的绝对值
countadjustRequestDetailDO.setQty(countadjustRequestDetailDO.getAdjustQty().abs());
countadjustRequestDetailDO.setId(null);
countadjustRequestDetailDO.setCreator(null);
countadjustRequestDetailDO.setCreateTime(null);
countadjustRequestDetailDO.setUpdater(null);
countadjustRequestDetailDO.setUpdateTime(null);
countadjustRequestDetailDOList.add(countadjustRequestDetailDO);
}
int result = 0;
//增加库存调整
if(!countadjustRequestDetailDOList.isEmpty()) {
CountadjustRequestMainDO countadjustRequestMainDO = new CountadjustRequestMainDO();
BeanUtils.copyProperties(countRequestMainDO, countadjustRequestMainDO);
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("CountAdjustRequest");
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CountAdjustRequest");
String adjustNumber = serialNumberApi.generateCode(RuleCodeEnum.COUNT_ADJUST_REQUEST.getCode());
countadjustRequestMainDO.setNumber(adjustNumber);
countadjustRequestMainDO.setBusinessType(businesstypeDO.getCode());
countadjustRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree());
countadjustRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit());
countadjustRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute());
countadjustRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
countadjustRequestMainDO.setCountRequestNumber(countRequestMainDO.getNumber());
countadjustRequestMainDO.setStatus(RequestStatusEnum.NEW.getCode());
countadjustRequestMainDO.setId(null);
countadjustRequestMainDO.setCreator(null);
countadjustRequestMainDO.setCreateTime(null);
countadjustRequestMainDO.setUpdater(null);
countadjustRequestMainDO.setUpdateTime(null);
result = countadjustRequestMainMapper.insert(countadjustRequestMainDO);
for(CountadjustRequestDetailDO countadjustRequestDetailDO : countadjustRequestDetailDOList) {
countadjustRequestDetailDO.setMasterId(countadjustRequestMainDO.getId());
countadjustRequestDetailDO.setNumber(adjustNumber);
}
countadjustRequestDetailMapper.insertBatch(countadjustRequestDetailDOList);
trendsApi.createTrends(countadjustRequestMainDO.getId(), "countadjustRequest", "生成了盘点调整申请", TrendsTypeEnum.CREATE);
}
return result;
}
/** /**
* 校验导入并赋值一些参数未完全实现 * 校验导入并赋值一些参数未完全实现
* @param mainDO * @param mainDO

23
win-module-wms/win-module-wms-biz/src/main/resources/mapper/countRecord/CountRecordDetailMapper.xml

@ -2,11 +2,22 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.win.module.wms.dal.mysql.countRecord.CountRecordDetailMapper"> <mapper namespace="com.win.module.wms.dal.mysql.countRecord.CountRecordDetailMapper">
<!-- <!-- 盘点记录未盘平数量-->
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。 <select id="getDifferenceCount" resultType="Long" parameterType="String">
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。 SELECT COUNT(1) FROM record_count_detail d1,(
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。 SELECT master_id,count_detail_number,MAX(create_time) create_time FROM record_count_detail WHERE master_id IN (
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/ SELECT id FROM record_count_main WHERE request_number=#{requestNumber}
--> ) GROUP BY master_id,count_detail_number
) d2 WHERE d1.master_id=d2.master_id AND d1.count_detail_number=d2.count_detail_number AND d1.create_time=d2.create_time AND d1.qty!=d1.count_qty
</select>
<!-- 盘点记录未盘平数据-->
<select id="getDifferenceCount" resultType="CountRecordDetailDO" parameterType="String">
SELECT d1.* FROM record_count_detail d1,(
SELECT master_id,count_detail_number,MAX(create_time) create_time FROM record_count_detail WHERE master_id IN (
SELECT id FROM record_count_main WHERE request_number=#{requestNumber}
) GROUP BY master_id,count_detail_number
) d2 WHERE d1.master_id=d2.master_id AND d1.count_detail_number=d2.count_detail_number AND d1.create_time=d2.create_time AND d1.qty!=d1.count_qty
</select>
</mapper> </mapper>

Loading…
Cancel
Save