diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java index 4bf3ceaa..a07214a2 100644 --- a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java +++ b/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_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_BIND_RECORD_NUMBER_NOT_EXISTS = new ErrorCode(1_000_168_004, "器具绑定参数number为空"); // 合包记录主 ErrorCode PACKAGEMERGE_MAIN_NOT_EXISTS = new ErrorCode(1_000_169_001, "合包记录主不存在"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/ContainerDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/ContainerDetailController.java index 27513a82..1d2c7655 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/ContainerDetailController.java +++ b/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") @Operation(summary = "创建器具子") @PreAuthorize("@ss.hasPermission('wms:container-detail:create')") - public CommonResult createContainerDetail(@Valid @RequestBody ContainerDetailCreateReqVO createReqVO) { + public CommonResult createContainerDetail(@Valid @RequestBody ContainerDetailCreateReqVO createReqVO) { return success(containerDetailService.createContainerDetail(createReqVO)); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/ContainerMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/ContainerMainController.java index c0a53a94..4d0754fb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/ContainerMainController.java +++ b/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; +import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; +import com.win.framework.excel.core.util.ExcelUtils; +import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.container.vo.*; -import com.win.module.wms.controller.transferissueJob.vo.TransferissueJobDetailExportReqVO; -import com.win.module.wms.controller.transferissueJob.vo.TransferissueJobDetailRespVO; -import com.win.module.wms.controller.transferissueJob.vo.TransferissueJobMainRespVO; -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 com.win.module.wms.convert.container.ContainerMainConvert; +import com.win.module.wms.dal.dataobject.container.ContainerMainDO; +import com.win.module.wms.service.container.ContainerMainService; 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.servlet.http.*; -import java.util.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; 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 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; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 器具主") @RestController @@ -53,7 +43,7 @@ public class ContainerMainController { @PostMapping("/create") @Operation(summary = "创建器具主") @PreAuthorize("@ss.hasPermission('wms:container-main:create')") - public CommonResult createContainerMain(@Valid @RequestBody ContainerMainCreateReqVO createReqVO) { + public CommonResult createContainerMain(@Valid @RequestBody ContainerMainCreateReqVO createReqVO) { return success(containerMainService.createContainerMain(createReqVO)); } @@ -138,4 +128,20 @@ public class ContainerMainController { return success(containerMainRespVO); } + @PostMapping("/containerBind") + @Operation(summary = "器具绑定") + @PreAuthorize("@ss.hasPermission('wms:container-main:create')") + public CommonResult 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 pdaUnBind(@Valid @RequestBody ContainerMainCreateReqVO createReqVO) { + String result = containerMainService.pdaUnBind(createReqVO); + return success(result); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/vo/ContainerMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/vo/ContainerMainBaseVO.java index 76c37c8c..951a2d6b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/vo/ContainerMainBaseVO.java +++ b/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 lombok.Data; -import javax.validation.constraints.NotNull; import java.math.BigDecimal; /** @@ -17,22 +16,18 @@ public class ContainerMainBaseVO { private Long id; @Schema(description = "号码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "号码不能为空") private String number; @Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "类型不能为空") private String type; @Schema(description = "总容量") private BigDecimal capacity; @Schema(description = "器具状态", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "器具状态不能为空") private String containerStatus; @Schema(description = "货主代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "货主代码不能为空") private String ownerCode; @Schema(description = "乐观锁") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/vo/ContainerMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/vo/ContainerMainCreateReqVO.java index 2cb9ac23..9ab40acf 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/vo/ContainerMainCreateReqVO.java +++ b/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 io.swagger.v3.oas.annotations.media.Schema; +import java.util.List; + @Schema(description = "管理后台 - 器具主创建 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class ContainerMainCreateReqVO extends ContainerMainBaseVO { + @Schema(description = "子表数据") + public List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/container/ContainerDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/container/ContainerDetailDO.java index 8fcfa5c2..bf066576 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/container/ContainerDetailDO.java +++ b/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 */ - @TableId(type = IdType.INPUT) - private String id; + @TableId + private Long id; /** * 主表ID */ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/container/ContainerMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/container/ContainerMainDO.java index 6c6e6d6d..92214def 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/container/ContainerMainDO.java +++ b/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 */ - @TableId(type = IdType.INPUT) - private String id; + @TableId + private Long id; /** * 号码 */ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/container/ContainerDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/container/ContainerDetailMapper.java index 72dbae65..d084e3d0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/container/ContainerDetailMapper.java +++ b/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 { .orderByDesc(ContainerDetailDO::getId)); } + default ContainerDetailDO queryByMasterIdAndContentNumber(Long masterId, String contentNumber){ + return selectOne(new LambdaQueryWrapperX() + .eq(ContainerDetailDO::getMasterId,masterId) + .eq(ContainerDetailDO::getContentNumber,contentNumber)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/container/ContainerMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/container/ContainerMainMapper.java index 0aa9d5b8..b49e6825 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/container/ContainerMainMapper.java +++ b/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 { .orderByDesc(ContainerMainDO::getId)); } + default ContainerMainDO queryByNumber(String number){ + return selectOne(new LambdaQueryWrapperX().eq(ContainerMainDO::getNumber,number)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerBind/ContainerBindRecordMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerBind/ContainerBindRecordMainMapper.java index 77a95d62..91842b07 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerBind/ContainerBindRecordMainMapper.java +++ b/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() + .eq(ContainerBindRecordMainDO::getContainerNumber,number)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerUnbind/ContainerUnbindRecordMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerUnbind/ContainerUnbindRecordMainMapper.java index 700c84ef..7ed49859 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerUnbind/ContainerUnbindRecordMainMapper.java +++ b/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() + .eq(ContainerUnbindRecordMainDO::getContainerNumber,number)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerDetailService.java index 0ea80b03..8dc58457 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerDetailService.java +++ b/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 创建信息 * @return 编号 */ - String createContainerDetail(@Valid ContainerDetailCreateReqVO createReqVO); + Long createContainerDetail(@Valid ContainerDetailCreateReqVO createReqVO); /** * 更新器具子 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerDetailServiceImpl.java index 4fa5a6cc..a6550e9c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerDetailServiceImpl.java +++ b/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; 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.user.AdminUserApi; 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.ContainerDetailPageReqVO; 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.containerBind.ContainerBindRecordDetailDO; 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.containerBind.ContainerBindRecordDetailMapper; 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 javax.annotation.Resource; - import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; +import javax.annotation.Resource; import java.time.LocalDateTime; -import java.util.*; - -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 java.util.Collection; +import java.util.List; 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.CONTAINER_DETAIL_NOT_EXISTS; /** * 器具子 Service 实现类 @@ -54,11 +56,15 @@ public class ContainerDetailServiceImpl implements ContainerDetailService { private SerialNumberApi serialNumberApi; @Resource private AdminUserApi userApi; + @Resource + private ContainerUnbindRecordMainMapper containerUnbindRecordMainMapper; + @Resource + private ContainerUnbindRecordDetailMapper containerUnbindRecordDetailMapper; @Transactional @Override - public String createContainerDetail(ContainerDetailCreateReqVO createReqVO) { + public Long createContainerDetail(ContainerDetailCreateReqVO createReqVO) { // 插入 ContainerDetailDO containerDetail = ContainerDetailConvert.INSTANCE.convert(createReqVO); containerDetailMapper.insert(containerDetail); @@ -69,16 +75,22 @@ public class ContainerDetailServiceImpl implements ContainerDetailService { } public void createContainerBindRecord(ContainerDetailDO containerDetail) { - // 器具绑定主表保存 - ContainerBindRecordMainDO containerBindRecordMainDO = new ContainerBindRecordMainDO(); ContainerMainDO containerMainDO = containerMainMapper.selectById(containerDetail.getMasterId()); - containerBindRecordMainDO.setFromWarehouseCode(containerMainDO.getWarehouseCode()); - containerBindRecordMainDO.setContainerNumber(containerMainDO.getNumber()); - containerBindRecordMainDO.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString()); - containerBindRecordMainDO.setCreateTime(LocalDateTime.now()); - String number = serialNumberApi.generateCode(RuleCodeEnum.CONTAINER_BIND_RECORD.getCode()); - containerBindRecordMainDO.setNumber(number); - containerBindRecordMainMapper.insert(containerBindRecordMainDO); + ContainerBindRecordMainDO containerBindRecordMainDO = containerBindRecordMainMapper.queryByContainerNumber(containerMainDO.getNumber()); + String number = null; + if(containerBindRecordMainDO == null ){ + // 器具绑定主表保存 + containerBindRecordMainDO = new ContainerBindRecordMainDO(); + containerBindRecordMainDO.setFromWarehouseCode(containerMainDO.getWarehouseCode()); + 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.setMasterId(containerBindRecordMainDO.getId()); @@ -102,18 +114,54 @@ public class ContainerDetailServiceImpl implements ContainerDetailService { containerDetailMapper.updateById(updateObj); } + @Transactional @Override public void deleteContainerDetail(Long id) { // 校验存在 - validateContainerDetailExists(id); + ContainerDetailDO containerDetailDO = validateContainerDetailExists(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) { - if (containerDetailMapper.selectById(id) == null) { + private ContainerDetailDO validateContainerDetailExists(Long id) { + ContainerDetailDO containerDetailDO = containerDetailMapper.selectById(id); + if (containerDetailDO == null) { throw exception(CONTAINER_DETAIL_NOT_EXISTS); } + return containerDetailDO; } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainService.java index 066625fd..09085c39 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainService.java +++ b/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 创建信息 * @return 编号 */ - String createContainerMain(@Valid ContainerMainCreateReqVO createReqVO); + Long createContainerMain(@Valid ContainerMainCreateReqVO createReqVO); /** * 更新器具主 @@ -83,4 +83,18 @@ public interface ContainerMainService { * @return */ ContainerMainRespVO getContainerByNumber(String number); + + /** + * 器具绑定 + * @param createReqVO 请求参数 + * @return 编号 + */ + String pdaBind(ContainerMainCreateReqVO createReqVO); + + /** + * 解绑数据 + * @param createReqVO 请求参数 + * @return 编号 + */ + String pdaUnBind(ContainerMainCreateReqVO createReqVO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainServiceImpl.java index acb1910c..20a6621b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainServiceImpl.java +++ b/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.containerinit.ContainerInitRecordDetailMapper; import com.win.module.wms.dal.mysql.containerinit.ContainerInitRecordMainMapper; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; 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.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; /** @@ -51,10 +53,13 @@ public class ContainerMainServiceImpl implements ContainerMainService { private SerialNumberApi serialNumberApi; @Resource private AdminUserApi userApi; + @Resource + private ContainerDetailService containerDetailService; + @Transactional @Override - public String createContainerMain(ContainerMainCreateReqVO createReqVO) { + public Long createContainerMain(ContainerMainCreateReqVO createReqVO) { // 插入 ContainerMainDO containerMain = ContainerMainConvert.INSTANCE.convert(createReqVO); String number = serialNumberApi.generateCode(RuleCodeEnum.CONTAINER_NUMBER.getCode()); @@ -155,4 +160,37 @@ public class ContainerMainServiceImpl implements ContainerMainService { 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 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 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(); + } + }