diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/balance/BalanceController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/balance/BalanceController.java index 87a1050a..d7e1feec 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/balance/BalanceController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/balance/BalanceController.java @@ -11,6 +11,7 @@ import com.win.module.wms.controller.balance.vo.*; import com.win.module.wms.convert.balance.BalanceConvert; import com.win.module.wms.dal.dataobject.balance.BalanceDO; import com.win.module.wms.service.balance.BalanceService; +import com.win.module.wms.util.JobUtils; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.security.access.prepost.PreAuthorize; @@ -36,6 +37,8 @@ public class BalanceController { private BalanceService balanceService; @Resource private AdminUserApi userApi; + @Resource + private JobUtils jobUtils; @PutMapping("/update") @Operation(summary = "更新库存余额") @@ -116,4 +119,12 @@ public class BalanceController { return success(result); } + @GetMapping("/pageLocationCodeToBalance") + @Operation(summary = "获得库位代码筛选出的库存余额分页") + @PreAuthorize("@ss.hasPermission('wms:balance:query')") + public CommonResult> selectLocationTypeToBalance() { + PageResult okToHold = jobUtils.selectLocationTypeToBalance("OkToHoldRequest"); + PageResult balanceRespVOPageResult = BalanceConvert.INSTANCE.convertPage(okToHold); + return success(balanceRespVOPageResult); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java index 1f9f24b4..e93bea54 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java @@ -221,6 +221,38 @@ public interface BalanceMapper extends BaseMapperX { .orderByDesc(BalanceDO::getId)); } + + default PageResult getBalanceInLocationTypesPage(BalancePageReqVO reqVO){ + PageResult page = selectPage(reqVO,new LambdaQueryWrapperX() + .eqIfPresent(BalanceDO::getPackingNumber, reqVO.getPackingNumber()) + .eqIfPresent(BalanceDO::getContainerNumber, reqVO.getContainerNumber()) + .eqIfPresent(BalanceDO::getItemCode, reqVO.getItemCode()) + .eqIfPresent(BalanceDO::getBatch, reqVO.getBatch()) + .eqIfPresent(BalanceDO::getAltBatch, reqVO.getAltBatch()) + .betweenIfPresent(BalanceDO::getArriveDate, reqVO.getArriveDate()) + .betweenIfPresent(BalanceDO::getProduceDate, reqVO.getProduceDate()) + .betweenIfPresent(BalanceDO::getExpireDate, reqVO.getExpireDate()) + .eqIfPresent(BalanceDO::getInventoryStatus, reqVO.getInventoryStatus()) + .inIfPresent(BalanceDO::getLocationCode, reqVO.getLocationCode().split(",")) + .eqIfPresent(BalanceDO::getLocationGroupCode, reqVO.getLocationGroupCode()) + .eqIfPresent(BalanceDO::getAreaCode, reqVO.getAreaCode()) + .eqIfPresent(BalanceDO::getWarehouseCode, reqVO.getWarehouseCode()) + .eqIfPresent(BalanceDO::getErpLocationCode, reqVO.getErpLocationCode()) + .eqIfPresent(BalanceDO::getOwnerCode, reqVO.getOwnerCode()) + .eqIfPresent(BalanceDO::getUom, reqVO.getUom()) + .eqIfPresent(BalanceDO::getQty, reqVO.getQty()) + .eqIfPresent(BalanceDO::getSinglePrice, reqVO.getSinglePrice()) + .eqIfPresent(BalanceDO::getAmount, reqVO.getAmount()) + .betweenIfPresent(BalanceDO::getPutInTime, reqVO.getPutInTime()) + .eqIfPresent(BalanceDO::getFrozen, reqVO.getFrozen()) + .eqIfPresent(BalanceDO::getFrozenReason, reqVO.getFrozenReason()) + .eqIfPresent(BalanceDO::getLastTransNumber, reqVO.getLastTransNumber()) + .eqIfPresent(BalanceDO::getWeight, reqVO.getWeight()) + .eqIfPresent(BalanceDO::getArea, reqVO.getArea()) + .eqIfPresent(BalanceDO::getVolume, reqVO.getVolume()) + .orderByDesc(BalanceDO::getId)); + return page; + } default PageResult getBalanceItemsPage(BalancePageReqVO reqVO){ PageResult page = selectPage(reqVO,new LambdaQueryWrapperX() .eqIfPresent(BalanceDO::getPackingNumber, reqVO.getPackingNumber()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java index 336cfc32..273a0bb7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java @@ -366,9 +366,6 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - RequestStatusState requestStatusState = new RequestStatusState(); - requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute()); - mainDo.setStatus(requestStatusState.getState().getCode()); } if(businesstypeDO == null){ message.append("根据单据设置未查找到发料申请的相关业务类型"); @@ -380,7 +377,11 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes()); mainDo.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses()); mainDo.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses()); + mainDo.setRequestTime(LocalDateTime.now()); } + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute()); + mainDo.setStatus(requestStatusState.getState().getCode()); try { ValidationUtils.validate(validator, mainDo); } catch (Exception ex) { @@ -467,11 +468,10 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService } //写入数据 if (flag) { - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); + String number = serialNumberApi.generateCode(RuleCodeEnum.DELIVER_REQUEST.getCode()); mainDo.setNumber(number); String customerDeliverNumber = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_DELIVER_NUMBER.getCode()); mainDo.setCustomerDeliverNumber(customerDeliverNumber); - mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "1")); deliverRequestMainMapper.insert(mainDo); for (DeliverRequestDetailDO detailDO : subDOList) { detailDO.setMasterId(mainDo.getId()); @@ -656,8 +656,17 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService } //校验发货计划是否存在 - private DeliverPlanMainDO validatorDeliverPlanExist(String number){ - return deliverPlanMainMapper.selectByNumber(number); + private DeliverPlanMainDO validatorDeliverPlanExist(String number) { + if (number != null && !"".equals(number)) { + DeliverPlanMainDO deliverPlanMainDO = deliverPlanMainMapper.selectByNumber(number); + if (deliverPlanMainDO != null) { + return deliverPlanMainDO; + } else { + throw exception(DELIVER_PLAN_MAIN_NOT_EXISTS); + } + }else { + return null; + } } //校验客户是否存在 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java index 2802ea8f..b952f86c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java @@ -4,8 +4,11 @@ import cn.hutool.core.exceptions.UtilException; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.balance.vo.BalancePageReqVO; import com.win.module.wms.controller.bom.vo.BomExportReqVO; import com.win.module.wms.controller.rule.vo.RuleRespVO; +import com.win.module.wms.convert.balance.BalanceConvert; import com.win.module.wms.dal.dataobject.balance.BalanceDO; import com.win.module.wms.dal.dataobject.bom.BomDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; @@ -190,14 +193,25 @@ public class JobUtils { return result; } - public void demo(String pcode){ + //根据业务类型查出的库位类型进行库存余额数据筛选进行分页查询 + public PageResult selectLocationTypeToBalance(String pcode){ BusinesstypeDO businesstypeDO = selectDocumentSettingFromBusinessType(pcode); String inLocationTypes = businesstypeDO.getInLocationTypes(); String[] split = inLocationTypes.split(","); - ArrayList balanceDOArrayList = new ArrayList<>(); - for (String s : split) { -// balanceService.getBalancePage() + BalancePageReqVO balancePageReqVO = new BalancePageReqVO(); + if(split.length > 1){ + for (String s : split) { + String locationCode = balancePageReqVO.getLocationCode(); + if(locationCode == null){ + balancePageReqVO.setLocationCode(s); + }else { + balancePageReqVO.setLocationCode(locationCode + ","+s); + } + } + }else { + balancePageReqVO.setLocationCode(inLocationTypes); } + return balanceMapper.getBalanceInLocationTypesPage(balancePageReqVO); } /**