diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/PurchasereturnRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/PurchasereturnRequestMainController.java index e9764a49..042b4691 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/PurchasereturnRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/PurchasereturnRequestMainController.java @@ -150,20 +150,14 @@ public class PurchasereturnRequestMainController { // 手动创建导出 demo List list = new ArrayList<>(); Map mapDropDown = new HashMap<>(); - String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRANSFER_MODE); - mapDropDown.put(4, transferMode); - String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE); - mapDropDown.put(7, locationType); - mapDropDown.put(8, locationType); - String[] requestStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.REQUEST_STATUS); - mapDropDown.put(18, requestStatus); - String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); - mapDropDown.put(31, inventoryStatus); - String[] packUnit = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PACK_UNIT); - mapDropDown.put(36, packUnit); String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); - mapDropDown.put(38, uom); - mapDropDown.put(47, uom); + mapDropDown.put(9, uom); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(10, inventoryStatus); + String[] reason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); + mapDropDown.put(12, reason); + String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); + mapDropDown.put(14, transferMode); ExcelUtils.write(response, "采购退货信息导入模板.xlsx", "采购退货信息列表", PurchasereturnRequestImportVO.class, list, mapDropDown); } @@ -208,4 +202,58 @@ public class PurchasereturnRequestMainController { return success(result); } + @PutMapping("/close") + @Operation(summary = "关闭采购收货申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:purchasereturn-request-main:close')") + public CommonResult closePurchasereturnRequestMain(@RequestParam("id") Long id) { + Integer count = purchasereturnRequestMainService.closePurchasereturnRequestMain(id); + return success(count > 0); + } + + @PutMapping("/reAdd") + @Operation(summary = "重新添加采购收货申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:purchasereturn-request-main:reAdd')") + public CommonResult openPurchasereturnRequestMain(@RequestParam("id") Long id) { + Integer count = purchasereturnRequestMainService.reAddPurchasereturnRequestMain(id); + return success(count > 0); + } + + @PutMapping("/submit") + @Operation(summary = "提交采购退货申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:purchasereturn-request-main:submit')") + public CommonResult submitPurchasereturnRequestMain(@RequestParam("id") Long id) { + Integer count = purchasereturnRequestMainService.submitPurchasereturnRequestMain(id); + return success(count > 0); + } + + @PutMapping("/agree") + @Operation(summary = "审批通过采购退货申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:purchasereturn-request-main:agree')") + public CommonResult agreePurchasereturnRequestMain(@RequestParam("id") Long id) { + Integer count = purchasereturnRequestMainService.agreePurchasereturnRequestMain(id); + return success(count > 0); + } + + @PutMapping("/handle") + @Operation(summary = "处理采购退货申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:purchasereturn-request-main:handle')") + public CommonResult handlePurchasereturnRequestMain(@RequestParam("id") Long id) { + Integer count = purchasereturnRequestMainService.handlePurchasereturnRequestMain(id); + return success(count > 0); + } + + @PutMapping("/refused") + @Operation(summary = "审批拒绝采购退货申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:purchasereturn-request-main:refused')") + public CommonResult abortPurchasereturnRequestMain(@RequestParam("id") Long id) { + Integer count = purchasereturnRequestMainService.refusedPurchasereturnRequestMain(id); + return success(count > 0); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestImportVO.java index 025579b1..094def94 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestImportVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestImportVO.java @@ -4,13 +4,13 @@ import com.alibaba.excel.annotation.ExcelProperty; import com.win.framework.excel.core.annotations.DictFormat; import com.win.framework.excel.core.convert.DictConvert; import com.win.module.wms.enums.DictTypeConstants; -import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import java.math.BigDecimal; +import java.time.LocalDateTime; /** @@ -24,9 +24,6 @@ import java.math.BigDecimal; @Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 public class PurchasereturnRequestImportVO { - @ExcelProperty("单据号") - private String number; - @ExcelProperty("采购收货记录单号") private String purchaseReceiptRecordNumber; @@ -78,4 +75,8 @@ public class PurchasereturnRequestImportVO { @ExcelProperty("车牌号") private String vehiclePlateNumber; + + @ExcelProperty("截至时间") + private LocalDateTime dueTime; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainBaseVO.java index 394e4573..0635b30d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainBaseVO.java @@ -2,11 +2,12 @@ package com.win.module.wms.controller.purchasereturnRequest.vo; import com.win.framework.excel.core.annotations.OnlyOne; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.time.LocalDateTime; -import javax.validation.constraints.*; +import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; /** @@ -15,9 +16,11 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY */ @Data public class PurchasereturnRequestMainBaseVO { + @Schema(description = "id", example = "id") private Long id; + @OnlyOne @Schema(description = "采购收货记录单号") private String purchaseReceiptRecordNumber; @@ -46,7 +49,6 @@ public class PurchasereturnRequestMainBaseVO { @Schema(description = "到仓库代码") private String toWarehouseCode; - @OnlyOne @Schema(description = "单据号") private String number; @@ -69,6 +71,7 @@ public class PurchasereturnRequestMainBaseVO { @Schema(description = "截止时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @NotNull(message = "截止时间不能为空") private LocalDateTime dueTime; @Schema(description = "部门") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestDetailConvert.java index 7675b801..3871b1d9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestDetailConvert.java @@ -1,18 +1,15 @@ package com.win.module.wms.convert.purchasereturnRequest; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - -import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailCreateReqVO; import com.win.module.wms.controller.purchasereturnRequest.vo.*; -import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO; +import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO; import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO; + +import java.util.List; /** * 采购退货申请子 Convert @@ -52,10 +49,6 @@ public interface PurchasereturnRequestDetailConvert { }) PurchasereturnRequestDetailExcelVO convert(PurchasereturnRequestMainDO mainDO, PurchasereturnRequestDetailDO detailDO); - @Mappings({ - @Mapping(source = "mainVo.number", target = "number"), - }) PurchasereturnRequestImportErrorVO convert(PurchasereturnRequestMainCreateReqVO mainVo, PurchasereturnRequestDetailCreateReqVO detailVo); - } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestMainConvert.java index dcd414d9..38385d82 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestMainConvert.java @@ -33,9 +33,6 @@ public interface PurchasereturnRequestMainConvert { List convertList02(List list); - @Mappings({ - @Mapping(source = "mainVo.number", target = "number"), - }) PurchasereturnRequestImportErrorVO convert(PurchasereturnRequestMainCreateReqVO mainVo, PurchasereturnRequestDetailDO detailDo); @Mappings({ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java index 697672a3..96ae5755 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java @@ -467,9 +467,9 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService if (inspect == null) { throw new UtilException("未找到该策略"); } - JSONArray configuration = JSONUtil.parseArray(inspect.getConfiguration()); + JSONArray condition = JSONUtil.parseArray(inspect.getCondition()); HashMap mapRule = new HashMap<>(); - for (Object o : configuration) { + for (Object o : condition) { JSONObject entries = JSONUtil.parseObj(o); mapRule.put(entries.get("ParamCode").toString(), entries.get("Value").toString()); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationService.java index e2945053..a06b9b38 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationService.java @@ -3,10 +3,10 @@ package com.win.module.wms.service.location; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.location.vo.*; +import com.win.module.wms.controller.rule.vo.RuleRespVO; import com.win.module.wms.dal.dataobject.location.LocationDO; import javax.validation.Valid; -import java.util.Collection; import java.util.List; /** @@ -87,5 +87,15 @@ public interface LocationService { * @param pcode * @return */ - public LocationDO selectLocation(String pcode); + LocationDO selectLocation(String pcode); + + /** + * 上架推荐策略 + * @param ruleRespVO 上架策略 + * @param packingNumber 包装号 + * @param itemCode 物料编码 + * @param batch 批次 + * @return + */ + LocationDO inspectLocation(RuleRespVO ruleRespVO, String packingNumber, String itemCode, String batch); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationServiceImpl.java index ecddc3c0..88808fc2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/location/LocationServiceImpl.java @@ -2,6 +2,8 @@ package com.win.module.wms.service.location; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.google.common.annotations.VisibleForTesting; import com.win.framework.common.exception.ServiceException; @@ -9,6 +11,7 @@ import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.framework.datapermission.core.util.DataPermissionUtils; import com.win.module.wms.controller.location.vo.*; +import com.win.module.wms.controller.rule.vo.RuleRespVO; import com.win.module.wms.convert.location.LocationConvert; import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.mysql.balance.BalanceMapper; @@ -20,9 +23,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; -import java.math.BigDecimal; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -287,13 +288,51 @@ public class LocationServiceImpl implements LocationService { //调用公共方法查询库位信息 @Override public LocationDO selectLocation(String pcode) { - QueryWrapper queryWrapper = new QueryWrapper(); + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("code",pcode); LocationDO locationDO = locationMapper.selectOne(queryWrapper); if(locationDO != null && "TRUE".equals(locationDO.getAvailable())){ return locationDO; - }else { + } else { throw exception(LOCATION_NOT_EXISTS); } } + + //{"WarehouseCode":"W1","AreaCode":"A1","LocationGroupCode":"LG1","LocationCode":"H01","EmptyLocationFirst":"FALSE","NotEmptyLocationFirst":"FALSE", + // "EnableMixItem":"TRUE","EnableMixLot":"TRUE","EnableMixStatus":"TRUE"} + @Override + public LocationDO inspectLocation(RuleRespVO ruleRespVO, String packingNumber, String itemCode, String batch) { + JSONObject jsonObject = JSONUtil.parseObj(ruleRespVO.getConfiguration()); + Object locationCode = jsonObject.get("LocationCode"); + //设置了库位直接返回 + if(locationCode != null) { + return this.selectLocation(String.valueOf(locationCode)); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + List locationTypeList = new ArrayList<>(); + locationTypeList.add("RAW"); + locationTypeList.add("SEMI"); + locationTypeList.add("FG"); + queryWrapper.in("`type`", locationTypeList); + Object warehouseCode = jsonObject.get("WarehouseCode"); + if(warehouseCode != null) { + queryWrapper.eq("warehouse_code", warehouseCode); + } + Object areaCode = jsonObject.get("AreaCode"); + if(areaCode != null) { + queryWrapper.eq("area_code", areaCode); + } + Object locationGroupCode = jsonObject.get("LocationGroupCode"); + if(locationGroupCode != null) { + queryWrapper.eq("location_group_code", locationGroupCode); + } + String emptyLocationFirst = String.valueOf(jsonObject.get("EmptyLocationFirst")); + if("TRUE".equals(emptyLocationFirst)) { + queryWrapper.notExists("SELECT id FROM transaction_balance WHERE packing_number=? AND item_code=? AND batch=? AND QTY > 0", packingNumber, itemCode,batch); + } else { + queryWrapper.exists("SELECT id FROM transaction_balance WHERE packing_number=? AND item_code=? AND batch=?", packingNumber, itemCode,batch); + } + queryWrapper.last("LIMIT 1"); + return locationMapper.selectOne(queryWrapper); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java index 1973dba4..736c0242 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java @@ -609,7 +609,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq private void validateSupplier(PurchasereceiptRequestMainDO mainDo) { supplierService.selectSupplier(mainDo.getSupplierCode()); RuleRespVO ruleRespVO = ruleService.deliverGoods(null, mainDo.getSupplierCode(), null); - JSONArray conditionArray = JSONUtil.parseArray(ruleRespVO.getConfiguration()); + JSONArray conditionArray = JSONUtil.parseArray(ruleRespVO.getCondition()); for (int i = 0; i < conditionArray.size(); i++) { JSONObject conditionObject = conditionArray.getJSONObject(i); if ("WarehouseCode".equals(conditionObject.get("ParamCode"))) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java index ac7789e2..e163f645 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java @@ -343,6 +343,7 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque purchasereturnJobMainDO.setStatus(JobStatusEnum.PENDING.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_JOB.getCode()); purchasereturnJobMainDO.setNumber(number); + purchasereturnJobMainDO.setRequestDueTime(mainDO.getRequestTime()); purchasereturnJobMainDO.setId(null); purchasereturnJobMainMapper.insert(purchasereturnJobMainDO); List expectoutCreateReqVOList = new ArrayList<>(); @@ -353,6 +354,9 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque purchasereturnJobDetailDO.setNumber(number); purchasereturnJobDetailDO.setId(null); purchasereturnJobDetailDO.setMasterId(purchasereturnJobMainDO.getId()); + purchasereturnJobDetailDO.setFromLocationCode(purchasereturnRequestDetailDO.getFromLocationCode()); + purchasereturnJobDetailDO.setToOwnerCode(purchasereturnRequestDetailDO.getToOwnerCode()); + purchasereturnJobDetailDO.setToLocationCode(purchasereturnRequestDetailDO.getToLocationCode()); purchasereturnJobDetailDOList.add(purchasereturnJobDetailDO); //预计出 ExpectoutCreateReqVO expectoutCreateReqVO = new ExpectoutCreateReqVO(); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainServiceImpl.java index d1dbc96f..1cb830f7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainServiceImpl.java @@ -14,6 +14,7 @@ import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO; import com.win.module.wms.controller.putawayRecord.vo.PutawayRecordDetailCreateReqVO; import com.win.module.wms.controller.putawayRecord.vo.PutawayRecordMainCreateReqVO; import com.win.module.wms.controller.putawayRequest.vo.*; +import com.win.module.wms.controller.rule.vo.RuleRespVO; import com.win.module.wms.convert.putawayJob.PutawayJobDetailConvert; import com.win.module.wms.convert.putawayJob.PutawayJobMainConvert; import com.win.module.wms.convert.putawayRecord.PutawayRecordDetailConvert; @@ -45,6 +46,7 @@ import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.purchase.PurchaseMainService; import com.win.module.wms.service.requestsetting.RequestsettingService; +import com.win.module.wms.service.rule.RuleService; import com.win.module.wms.util.JobUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -101,6 +103,8 @@ public class PutawayRequestMainServiceImpl implements PutawayRequestMainService private PutawayRecordDetailMapper putawayRecordDetailMapper; @Resource private ExpectoutService expectoutService; + @Resource + private RuleService ruleService; @Override @Transactional @@ -342,6 +346,10 @@ public class PutawayRequestMainServiceImpl implements PutawayRequestMainService List putawayJobDetailDOList = new ArrayList<>(); for(PutawayRequestDetailDO putawayRequestDetailDO : detailDOList) { PutawayJobDetailDO putawayJobDetailDO = PutawayJobDetailConvert.INSTANCE.convert(putawayRequestDetailDO); + RuleRespVO ruleRespVO = ruleService.grounding(null, null, null, null, null, null, + putawayJobDetailDO.getItemCode(), putawayJobDetailDO.getInventoryStatus(), null, null, null, null, null); + LocationDO locationDO = locationService.inspectLocation(ruleRespVO, putawayJobDetailDO.getPackingNumber(), putawayJobDetailDO.getItemCode(), putawayJobDetailDO.getItemCode()); + putawayJobDetailDO.setToLocationCode(locationDO.getCode()); putawayJobDetailDO.setNumber(number); putawayJobDetailDO.setMasterId(putawayJobDetailDO.getId()); putawayJobDetailDOList.add(putawayJobDetailDO);