Browse Source

器具绑定与解绑PDA接口开发

master
赵雪冰 2 years ago
parent
commit
843e4130a0
  1. 1
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/ContainerDetailController.java
  3. 64
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/ContainerMainController.java
  4. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/vo/ContainerMainBaseVO.java
  5. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/vo/ContainerMainCreateReqVO.java
  6. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/container/ContainerDetailDO.java
  7. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/container/ContainerMainDO.java
  8. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/container/ContainerDetailMapper.java
  9. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/container/ContainerMainMapper.java
  10. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerBind/ContainerBindRecordMainMapper.java
  11. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerUnbind/ContainerUnbindRecordMainMapper.java
  12. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerDetailService.java
  13. 94
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerDetailServiceImpl.java
  14. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainService.java
  15. 40
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainServiceImpl.java

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

@ -1090,6 +1090,7 @@ public interface ErrorCodeConstants {
ErrorCode CONTAINER_UNBIND_RECORD_MAIN_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_168_004, "器具解绑主列表不存在"); ErrorCode CONTAINER_UNBIND_RECORD_MAIN_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_168_004, "器具解绑主列表不存在");
ErrorCode CONTAINER_UNBIND_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_168_004, "器具解绑子表不存在"); ErrorCode CONTAINER_UNBIND_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_168_004, "器具解绑子表不存在");
ErrorCode CONTAINER_UNBIND_RECORD_DETAIL_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_168_004, "器具解绑子列表不存在"); ErrorCode CONTAINER_UNBIND_RECORD_DETAIL_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_168_004, "器具解绑子列表不存在");
ErrorCode CONTAINER_BIND_RECORD_NUMBER_NOT_EXISTS = new ErrorCode(1_000_168_004, "器具绑定参数number为空");
// 合包记录主 // 合包记录主
ErrorCode PACKAGEMERGE_MAIN_NOT_EXISTS = new ErrorCode(1_000_169_001, "合包记录主不存在"); ErrorCode PACKAGEMERGE_MAIN_NOT_EXISTS = new ErrorCode(1_000_169_001, "合包记录主不存在");

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/ContainerDetailController.java

@ -46,7 +46,7 @@ public class ContainerDetailController {
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建器具子") @Operation(summary = "创建器具子")
@PreAuthorize("@ss.hasPermission('wms:container-detail:create')") @PreAuthorize("@ss.hasPermission('wms:container-detail:create')")
public CommonResult<String> createContainerDetail(@Valid @RequestBody ContainerDetailCreateReqVO createReqVO) { public CommonResult<Long> createContainerDetail(@Valid @RequestBody ContainerDetailCreateReqVO createReqVO) {
return success(containerDetailService.createContainerDetail(createReqVO)); return success(containerDetailService.createContainerDetail(createReqVO));
} }

64
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/ContainerMainController.java

@ -1,42 +1,32 @@
package com.win.module.wms.controller.container; package com.win.module.wms.controller.container;
import com.win.framework.common.pojo.CommonResult;
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.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.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.container.vo.*; import com.win.module.wms.controller.container.vo.*;
import com.win.module.wms.controller.transferissueJob.vo.TransferissueJobDetailExportReqVO; import com.win.module.wms.convert.container.ContainerMainConvert;
import com.win.module.wms.controller.transferissueJob.vo.TransferissueJobDetailRespVO; import com.win.module.wms.dal.dataobject.container.ContainerMainDO;
import com.win.module.wms.controller.transferissueJob.vo.TransferissueJobMainRespVO; import com.win.module.wms.service.container.ContainerMainService;
import com.win.module.wms.convert.transferissueJob.TransferissueJobDetailConvert;
import com.win.module.wms.convert.transferissueJob.TransferissueJobMainConvert;
import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobDetailDO;
import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobMainDO;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.*; import javax.annotation.Resource;
import javax.servlet.http.*; import javax.servlet.http.HttpServletResponse;
import java.util.*; import javax.validation.Valid;
import java.io.IOException; import java.io.IOException;
import java.util.Collection;
import java.util.List;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.pojo.CommonResult;
import static com.win.framework.common.pojo.CommonResult.success; import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.controller.container.vo.*;
import com.win.module.wms.dal.dataobject.container.ContainerMainDO;
import com.win.module.wms.convert.container.ContainerMainConvert;
import com.win.module.wms.service.container.ContainerMainService;
@Tag(name = "管理后台 - 器具主") @Tag(name = "管理后台 - 器具主")
@RestController @RestController
@ -53,7 +43,7 @@ public class ContainerMainController {
@PostMapping("/create") @PostMapping("/create")
@Operation(summary = "创建器具主") @Operation(summary = "创建器具主")
@PreAuthorize("@ss.hasPermission('wms:container-main:create')") @PreAuthorize("@ss.hasPermission('wms:container-main:create')")
public CommonResult<String> createContainerMain(@Valid @RequestBody ContainerMainCreateReqVO createReqVO) { public CommonResult<Long> createContainerMain(@Valid @RequestBody ContainerMainCreateReqVO createReqVO) {
return success(containerMainService.createContainerMain(createReqVO)); return success(containerMainService.createContainerMain(createReqVO));
} }
@ -138,4 +128,20 @@ public class ContainerMainController {
return success(containerMainRespVO); return success(containerMainRespVO);
} }
@PostMapping("/containerBind")
@Operation(summary = "器具绑定")
@PreAuthorize("@ss.hasPermission('wms:container-main:create')")
public CommonResult<String> pdaBind(@Valid @RequestBody ContainerMainCreateReqVO createReqVO) {
String result = containerMainService.pdaBind(createReqVO);
return success(result);
}
@PostMapping("/containerUnBind")
@Operation(summary = "器具解绑")
@PreAuthorize("@ss.hasPermission('wms:container-main:create')")
public CommonResult<String> pdaUnBind(@Valid @RequestBody ContainerMainCreateReqVO createReqVO) {
String result = containerMainService.pdaUnBind(createReqVO);
return success(result);
}
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/vo/ContainerMainBaseVO.java

@ -3,7 +3,6 @@ package com.win.module.wms.controller.container.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal; import java.math.BigDecimal;
/** /**
@ -17,22 +16,18 @@ public class ContainerMainBaseVO {
private Long id; private Long id;
@Schema(description = "号码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "号码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "号码不能为空")
private String number; private String number;
@Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "类型不能为空")
private String type; private String type;
@Schema(description = "总容量") @Schema(description = "总容量")
private BigDecimal capacity; private BigDecimal capacity;
@Schema(description = "器具状态", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "器具状态", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "器具状态不能为空")
private String containerStatus; private String containerStatus;
@Schema(description = "货主代码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "货主代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "货主代码不能为空")
private String ownerCode; private String ownerCode;
@Schema(description = "乐观锁") @Schema(description = "乐观锁")

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/vo/ContainerMainCreateReqVO.java

@ -3,10 +3,14 @@ package com.win.module.wms.controller.container.vo;
import lombok.*; import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
@Schema(description = "管理后台 - 器具主创建 Request VO") @Schema(description = "管理后台 - 器具主创建 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class ContainerMainCreateReqVO extends ContainerMainBaseVO { public class ContainerMainCreateReqVO extends ContainerMainBaseVO {
@Schema(description = "子表数据")
public List<ContainerDetailCreateReqVO> subList;
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/container/ContainerDetailDO.java

@ -27,8 +27,8 @@ public class ContainerDetailDO extends BaseDO {
/** /**
* id * id
*/ */
@TableId(type = IdType.INPUT) @TableId
private String id; private Long id;
/** /**
* 主表ID * 主表ID
*/ */

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/container/ContainerMainDO.java

@ -27,8 +27,8 @@ public class ContainerMainDO extends BaseDO {
/** /**
* id * id
*/ */
@TableId(type = IdType.INPUT) @TableId
private String id; private Long id;
/** /**
* 号码 * 号码
*/ */

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/container/ContainerDetailMapper.java

@ -47,4 +47,9 @@ public interface ContainerDetailMapper extends BaseMapperX<ContainerDetailDO> {
.orderByDesc(ContainerDetailDO::getId)); .orderByDesc(ContainerDetailDO::getId));
} }
default ContainerDetailDO queryByMasterIdAndContentNumber(Long masterId, String contentNumber){
return selectOne(new LambdaQueryWrapperX<ContainerDetailDO>()
.eq(ContainerDetailDO::getMasterId,masterId)
.eq(ContainerDetailDO::getContentNumber,contentNumber));
}
} }

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/container/ContainerMainMapper.java

@ -43,4 +43,7 @@ public interface ContainerMainMapper extends BaseMapperX<ContainerMainDO> {
.orderByDesc(ContainerMainDO::getId)); .orderByDesc(ContainerMainDO::getId));
} }
default ContainerMainDO queryByNumber(String number){
return selectOne(new LambdaQueryWrapperX<ContainerMainDO>().eq(ContainerMainDO::getNumber,number));
}
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerBind/ContainerBindRecordMainMapper.java

@ -32,4 +32,8 @@ public interface ContainerBindRecordMainMapper extends BaseMapperX<ContainerBind
.orderByDesc(ContainerBindRecordMainDO::getId)); .orderByDesc(ContainerBindRecordMainDO::getId));
} }
default ContainerBindRecordMainDO queryByContainerNumber(String number){
return selectOne(new LambdaQueryWrapperX<ContainerBindRecordMainDO>()
.eq(ContainerBindRecordMainDO::getContainerNumber,number));
}
} }

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerUnbind/ContainerUnbindRecordMainMapper.java

@ -76,4 +76,8 @@ public interface ContainerUnbindRecordMainMapper extends BaseMapperX<ContainerUn
.orderByDesc(ContainerUnbindRecordMainDO::getId)); .orderByDesc(ContainerUnbindRecordMainDO::getId));
} }
default ContainerUnbindRecordMainDO queryByContainerNumber(String number){
return selectOne(new LambdaQueryWrapperX<ContainerUnbindRecordMainDO>()
.eq(ContainerUnbindRecordMainDO::getContainerNumber,number));
}
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerDetailService.java

@ -24,7 +24,7 @@ public interface ContainerDetailService {
* @param createReqVO 创建信息 * @param createReqVO 创建信息
* @return 编号 * @return 编号
*/ */
String createContainerDetail(@Valid ContainerDetailCreateReqVO createReqVO); Long createContainerDetail(@Valid ContainerDetailCreateReqVO createReqVO);
/** /**
* 更新器具子 * 更新器具子

94
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerDetailServiceImpl.java

@ -1,6 +1,7 @@
package com.win.module.wms.service.container; package com.win.module.wms.service.container;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
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.api.user.AdminUserApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.system.enums.serialNumber.RuleCodeEnum;
@ -8,30 +9,31 @@ import com.win.module.wms.controller.container.vo.ContainerDetailCreateReqVO;
import com.win.module.wms.controller.container.vo.ContainerDetailExportReqVO; import com.win.module.wms.controller.container.vo.ContainerDetailExportReqVO;
import com.win.module.wms.controller.container.vo.ContainerDetailPageReqVO; import com.win.module.wms.controller.container.vo.ContainerDetailPageReqVO;
import com.win.module.wms.controller.container.vo.ContainerDetailUpdateReqVO; import com.win.module.wms.controller.container.vo.ContainerDetailUpdateReqVO;
import com.win.module.wms.convert.container.ContainerDetailConvert;
import com.win.module.wms.dal.dataobject.container.ContainerDetailDO;
import com.win.module.wms.dal.dataobject.container.ContainerMainDO; import com.win.module.wms.dal.dataobject.container.ContainerMainDO;
import com.win.module.wms.dal.dataobject.containerBind.ContainerBindRecordDetailDO; import com.win.module.wms.dal.dataobject.containerBind.ContainerBindRecordDetailDO;
import com.win.module.wms.dal.dataobject.containerBind.ContainerBindRecordMainDO; import com.win.module.wms.dal.dataobject.containerBind.ContainerBindRecordMainDO;
import com.win.module.wms.dal.dataobject.containerUnbind.ContainerUnbindRecordDetailDO;
import com.win.module.wms.dal.dataobject.containerUnbind.ContainerUnbindRecordMainDO;
import com.win.module.wms.dal.mysql.container.ContainerDetailMapper;
import com.win.module.wms.dal.mysql.container.ContainerMainMapper; import com.win.module.wms.dal.mysql.container.ContainerMainMapper;
import com.win.module.wms.dal.mysql.containerBind.ContainerBindRecordDetailMapper; import com.win.module.wms.dal.mysql.containerBind.ContainerBindRecordDetailMapper;
import com.win.module.wms.dal.mysql.containerBind.ContainerBindRecordMainMapper; import com.win.module.wms.dal.mysql.containerBind.ContainerBindRecordMainMapper;
import com.win.module.wms.dal.mysql.containerUnbind.ContainerUnbindRecordDetailMapper;
import com.win.module.wms.dal.mysql.containerUnbind.ContainerUnbindRecordMainMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.Collection;
import java.util.List;
import com.win.module.wms.dal.dataobject.container.ContainerDetailDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.convert.container.ContainerDetailConvert;
import com.win.module.wms.dal.mysql.container.ContainerDetailMapper;
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.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.*; import static com.win.module.wms.enums.ErrorCodeConstants.CONTAINER_DETAIL_NOT_EXISTS;
/** /**
* 器具子 Service 实现类 * 器具子 Service 实现类
@ -54,11 +56,15 @@ public class ContainerDetailServiceImpl implements ContainerDetailService {
private SerialNumberApi serialNumberApi; private SerialNumberApi serialNumberApi;
@Resource @Resource
private AdminUserApi userApi; private AdminUserApi userApi;
@Resource
private ContainerUnbindRecordMainMapper containerUnbindRecordMainMapper;
@Resource
private ContainerUnbindRecordDetailMapper containerUnbindRecordDetailMapper;
@Transactional @Transactional
@Override @Override
public String createContainerDetail(ContainerDetailCreateReqVO createReqVO) { public Long createContainerDetail(ContainerDetailCreateReqVO createReqVO) {
// 插入 // 插入
ContainerDetailDO containerDetail = ContainerDetailConvert.INSTANCE.convert(createReqVO); ContainerDetailDO containerDetail = ContainerDetailConvert.INSTANCE.convert(createReqVO);
containerDetailMapper.insert(containerDetail); containerDetailMapper.insert(containerDetail);
@ -69,16 +75,22 @@ public class ContainerDetailServiceImpl implements ContainerDetailService {
} }
public void createContainerBindRecord(ContainerDetailDO containerDetail) { public void createContainerBindRecord(ContainerDetailDO containerDetail) {
// 器具绑定主表保存
ContainerBindRecordMainDO containerBindRecordMainDO = new ContainerBindRecordMainDO();
ContainerMainDO containerMainDO = containerMainMapper.selectById(containerDetail.getMasterId()); ContainerMainDO containerMainDO = containerMainMapper.selectById(containerDetail.getMasterId());
containerBindRecordMainDO.setFromWarehouseCode(containerMainDO.getWarehouseCode()); ContainerBindRecordMainDO containerBindRecordMainDO = containerBindRecordMainMapper.queryByContainerNumber(containerMainDO.getNumber());
containerBindRecordMainDO.setContainerNumber(containerMainDO.getNumber()); String number = null;
containerBindRecordMainDO.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString()); if(containerBindRecordMainDO == null ){
containerBindRecordMainDO.setCreateTime(LocalDateTime.now()); // 器具绑定主表保存
String number = serialNumberApi.generateCode(RuleCodeEnum.CONTAINER_BIND_RECORD.getCode()); containerBindRecordMainDO = new ContainerBindRecordMainDO();
containerBindRecordMainDO.setNumber(number); containerBindRecordMainDO.setFromWarehouseCode(containerMainDO.getWarehouseCode());
containerBindRecordMainMapper.insert(containerBindRecordMainDO); containerBindRecordMainDO.setContainerNumber(containerMainDO.getNumber());
containerBindRecordMainDO.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString());
containerBindRecordMainDO.setCreateTime(LocalDateTime.now());
number = serialNumberApi.generateCode(RuleCodeEnum.CONTAINER_BIND_RECORD.getCode());
containerBindRecordMainDO.setNumber(number);
containerBindRecordMainMapper.insert(containerBindRecordMainDO);
}else {
number = containerBindRecordMainDO.getNumber();
}
// 器具绑定子表保存 // 器具绑定子表保存
ContainerBindRecordDetailDO containerBindRecordDetailDO = new ContainerBindRecordDetailDO(); ContainerBindRecordDetailDO containerBindRecordDetailDO = new ContainerBindRecordDetailDO();
containerBindRecordDetailDO.setMasterId(containerBindRecordMainDO.getId()); containerBindRecordDetailDO.setMasterId(containerBindRecordMainDO.getId());
@ -102,18 +114,54 @@ public class ContainerDetailServiceImpl implements ContainerDetailService {
containerDetailMapper.updateById(updateObj); containerDetailMapper.updateById(updateObj);
} }
@Transactional
@Override @Override
public void deleteContainerDetail(Long id) { public void deleteContainerDetail(Long id) {
// 校验存在 // 校验存在
validateContainerDetailExists(id); ContainerDetailDO containerDetailDO = validateContainerDetailExists(id);
// 删除 // 删除
containerDetailMapper.deleteById(id); containerDetailMapper.deleteById(id);
// 添加到器具解绑记录表
createContainerUnbindRecord(containerDetailDO);
}
private void createContainerUnbindRecord(ContainerDetailDO containerDetailDO) {
ContainerMainDO containerMainDO = containerMainMapper.selectById(containerDetailDO.getMasterId());
ContainerUnbindRecordMainDO containerUnbindRecordMainDO = containerUnbindRecordMainMapper.queryByContainerNumber(containerMainDO.getNumber());
String number = null;
if(containerUnbindRecordMainDO == null){
// 器具绑定主表保存
containerUnbindRecordMainDO = new ContainerUnbindRecordMainDO();
containerUnbindRecordMainDO.setFromWarehouseCode(containerMainDO.getWarehouseCode());
containerUnbindRecordMainDO.setContainerNumber(containerMainDO.getNumber());
containerUnbindRecordMainDO.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString());
containerUnbindRecordMainDO.setCreateTime(LocalDateTime.now());
number = serialNumberApi.generateCode(RuleCodeEnum.CONTAINER_UNBIND_RECORD.getCode());
containerUnbindRecordMainDO.setNumber(number);
containerUnbindRecordMainMapper.insert(containerUnbindRecordMainDO);
}else {
number = containerUnbindRecordMainDO.getNumber();
}
// 器具绑定子表保存
ContainerUnbindRecordDetailDO containerUnbindRecordDetailDO = new ContainerUnbindRecordDetailDO();
containerUnbindRecordDetailDO.setMasterId(containerUnbindRecordMainDO.getId());
containerUnbindRecordDetailDO.setNumber(number);
containerUnbindRecordDetailDO.setContainerContentType(containerDetailDO.getContainerContentType());
containerUnbindRecordDetailDO.setContentNumber(containerDetailDO.getContentNumber());
containerUnbindRecordDetailDO.setItemCode(containerDetailDO.getItemCode());
containerUnbindRecordDetailDO.setBatch(containerDetailDO.getBatch());
containerUnbindRecordDetailDO.setInventoryStatus(containerDetailDO.getInventoryStatus());
containerUnbindRecordDetailDO.setUom(containerDetailDO.getUom());
containerUnbindRecordDetailDO.setQty(containerDetailDO.getQty());
containerUnbindRecordDetailMapper.insert(containerUnbindRecordDetailDO);
} }
private void validateContainerDetailExists(Long id) { private ContainerDetailDO validateContainerDetailExists(Long id) {
if (containerDetailMapper.selectById(id) == null) { ContainerDetailDO containerDetailDO = containerDetailMapper.selectById(id);
if (containerDetailDO == null) {
throw exception(CONTAINER_DETAIL_NOT_EXISTS); throw exception(CONTAINER_DETAIL_NOT_EXISTS);
} }
return containerDetailDO;
} }
@Override @Override

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainService.java

@ -21,7 +21,7 @@ public interface ContainerMainService {
* @param createReqVO 创建信息 * @param createReqVO 创建信息
* @return 编号 * @return 编号
*/ */
String createContainerMain(@Valid ContainerMainCreateReqVO createReqVO); Long createContainerMain(@Valid ContainerMainCreateReqVO createReqVO);
/** /**
* 更新器具主 * 更新器具主
@ -83,4 +83,18 @@ public interface ContainerMainService {
* @return * @return
*/ */
ContainerMainRespVO getContainerByNumber(String number); ContainerMainRespVO getContainerByNumber(String number);
/**
* 器具绑定
* @param createReqVO 请求参数
* @return 编号
*/
String pdaBind(ContainerMainCreateReqVO createReqVO);
/**
* 解绑数据
* @param createReqVO 请求参数
* @return 编号
*/
String pdaUnBind(ContainerMainCreateReqVO createReqVO);
} }

40
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainServiceImpl.java

@ -17,6 +17,7 @@ import com.win.module.wms.dal.mysql.container.ContainerDetailMapper;
import com.win.module.wms.dal.mysql.container.ContainerMainMapper; import com.win.module.wms.dal.mysql.container.ContainerMainMapper;
import com.win.module.wms.dal.mysql.containerinit.ContainerInitRecordDetailMapper; import com.win.module.wms.dal.mysql.containerinit.ContainerInitRecordDetailMapper;
import com.win.module.wms.dal.mysql.containerinit.ContainerInitRecordMainMapper; import com.win.module.wms.dal.mysql.containerinit.ContainerInitRecordMainMapper;
import org.apache.commons.lang3.StringUtils;
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.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -28,6 +29,7 @@ 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.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.CONTAINER_BIND_RECORD_NUMBER_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.CONTAINER_MAIN_NOT_EXISTS; import static com.win.module.wms.enums.ErrorCodeConstants.CONTAINER_MAIN_NOT_EXISTS;
/** /**
@ -51,10 +53,13 @@ public class ContainerMainServiceImpl implements ContainerMainService {
private SerialNumberApi serialNumberApi; private SerialNumberApi serialNumberApi;
@Resource @Resource
private AdminUserApi userApi; private AdminUserApi userApi;
@Resource
private ContainerDetailService containerDetailService;
@Transactional @Transactional
@Override @Override
public String createContainerMain(ContainerMainCreateReqVO createReqVO) { public Long createContainerMain(ContainerMainCreateReqVO createReqVO) {
// 插入 // 插入
ContainerMainDO containerMain = ContainerMainConvert.INSTANCE.convert(createReqVO); ContainerMainDO containerMain = ContainerMainConvert.INSTANCE.convert(createReqVO);
String number = serialNumberApi.generateCode(RuleCodeEnum.CONTAINER_NUMBER.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.CONTAINER_NUMBER.getCode());
@ -155,4 +160,37 @@ public class ContainerMainServiceImpl implements ContainerMainService {
return containerMainRespVO; return containerMainRespVO;
} }
@Transactional
@Override
public String pdaBind(ContainerMainCreateReqVO createReqVO) {
if(StringUtils.isEmpty(createReqVO.getNumber())){
throw exception(CONTAINER_BIND_RECORD_NUMBER_NOT_EXISTS);
}
ContainerMainDO containerMainDO = containerMainMapper.queryByNumber(createReqVO.getNumber());
List<ContainerDetailCreateReqVO> detailCreateReqVOList = createReqVO.subList;
if(detailCreateReqVOList != null && detailCreateReqVOList.size() > 0){
for(ContainerDetailCreateReqVO containerDetailCreateReqVO:detailCreateReqVOList){
containerDetailService.createContainerDetail(containerDetailCreateReqVO);
}
}
return containerMainDO.getNumber();
}
@Transactional
@Override
public String pdaUnBind(ContainerMainCreateReqVO createReqVO) {
if(StringUtils.isEmpty(createReqVO.getNumber())){
throw exception(CONTAINER_BIND_RECORD_NUMBER_NOT_EXISTS);
}
ContainerMainDO containerMainDO = containerMainMapper.queryByNumber(createReqVO.getNumber());
List<ContainerDetailCreateReqVO> detailCreateReqVOList = createReqVO.subList;
if(detailCreateReqVOList != null && detailCreateReqVOList.size() > 0){
for(ContainerDetailCreateReqVO containerDetailCreateReqVO:detailCreateReqVOList){
ContainerDetailDO containerDetailDO = containerDetailMapper.queryByMasterIdAndContentNumber(containerMainDO.getId(),containerDetailCreateReqVO.getContentNumber());
containerDetailService.deleteContainerDetail(containerDetailDO.getId());
}
}
return containerMainDO.getNumber();
}
} }

Loading…
Cancel
Save