diff --git a/src/main/java/com/huaheng/api/wcs/controller/EmptyOutHandle.java b/src/main/java/com/huaheng/api/wcs/controller/EmptyOutHandle.java index 1a8e2fd..369aef8 100644 --- a/src/main/java/com/huaheng/api/wcs/controller/EmptyOutHandle.java +++ b/src/main/java/com/huaheng/api/wcs/controller/EmptyOutHandle.java @@ -32,7 +32,7 @@ public class EmptyOutHandle extends BaseController { @ResponseBody public AjaxResult EmptyOutHandle(@RequestBody Map<String,String> map) { String taskNo = map.get("taskNo"); - AjaxResult ajaxResult =emptyOutHandleService.EmptyOutHandle(taskNo); + AjaxResult ajaxResult = emptyOutHandleService.EmptyOutHandle(taskNo); return ajaxResult; } diff --git a/src/main/java/com/huaheng/api/wcs/controller/OverrideHandle.java b/src/main/java/com/huaheng/api/wcs/controller/OverrideHandle.java index c874851..7fb1cdf 100644 --- a/src/main/java/com/huaheng/api/wcs/controller/OverrideHandle.java +++ b/src/main/java/com/huaheng/api/wcs/controller/OverrideHandle.java @@ -7,8 +7,10 @@ import com.huaheng.framework.aspectj.lang.annotation.Log; import com.huaheng.framework.aspectj.lang.constant.BusinessType; import com.huaheng.framework.web.controller.BaseController; import com.huaheng.framework.web.domain.AjaxResult; +import com.huaheng.pc.receipt.reservation.domain.Reservation; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -28,12 +30,11 @@ public class OverrideHandle extends BaseController { private OverrideHandleService overrideHandleService; @Log(title = "wcs重入处理", action = BusinessType.INSERT) - @PostMapping("/ReenterHandle") + @PostMapping("/reenterHandle") @ApiOperation("wcs重入处理") @ResponseBody - public AjaxResult ReenterHandle(@RequestBody TaskFinishDomain taskFinishDomain) { + public AjaxResult reenterHandle(@RequestBody TaskFinishDomain taskFinishDomain) { return overrideHandleService.OverrideHandle(taskFinishDomain); } - } diff --git a/src/main/java/com/huaheng/api/wcs/controller/TaskFinish.java b/src/main/java/com/huaheng/api/wcs/controller/TaskFinish.java index 0aea296..2da3f91 100644 --- a/src/main/java/com/huaheng/api/wcs/controller/TaskFinish.java +++ b/src/main/java/com/huaheng/api/wcs/controller/TaskFinish.java @@ -32,9 +32,9 @@ public class TaskFinish extends BaseController { @PostMapping("/complete") @ApiOperation("wcs任务完成") @ResponseBody - public AjaxResult TaskFinish(@RequestBody TaskFinishDomain taskFinishDomain) + public AjaxResult complete(@RequestBody TaskFinishDomain taskFinishDomain) { - AjaxResult ajaxResult =taskFinishService.completeTaskByWCS(taskFinishDomain) ; + AjaxResult ajaxResult = taskFinishService.completeTaskByWCS(taskFinishDomain); return ajaxResult; } diff --git a/src/main/java/com/huaheng/api/wcs/domain/TaskFinishDomain.java b/src/main/java/com/huaheng/api/wcs/domain/TaskFinishDomain.java index 53176b0..b47eae1 100644 --- a/src/main/java/com/huaheng/api/wcs/domain/TaskFinishDomain.java +++ b/src/main/java/com/huaheng/api/wcs/domain/TaskFinishDomain.java @@ -28,4 +28,6 @@ public class TaskFinishDomain { //重量 private String Weight; + private String warehouseCode; + } diff --git a/src/main/java/com/huaheng/api/wcs/service/emptyOutHandle/EmptyOutHandleServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/emptyOutHandle/EmptyOutHandleServiceImpl.java index 8f98a07..5bd5c90 100644 --- a/src/main/java/com/huaheng/api/wcs/service/emptyOutHandle/EmptyOutHandleServiceImpl.java +++ b/src/main/java/com/huaheng/api/wcs/service/emptyOutHandle/EmptyOutHandleServiceImpl.java @@ -1,6 +1,7 @@ package com.huaheng.api.wcs.service.emptyOutHandle; import com.huaheng.api.wcs.domain.WcsTask; +import com.huaheng.common.constant.QuantityConstant; import com.huaheng.common.utils.StringUtils; import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.pc.task.taskHeader.domain.TaskHeader; @@ -35,17 +36,19 @@ public class EmptyOutHandleServiceImpl implements EmptyOutHandleService { //2、根据任务号查找任务 TaskHeader taskHeader = taskHeaderService.getById(Integer.valueOf(taskNo)); - if(taskHeader == null){ + if(taskHeader == null) { return AjaxResult.error("任务号错误,没有找到该任务"); } - if(taskHeader.getStatus() == 100){ + + if(taskHeader.getStatus().intValue() == QuantityConstant.TASK_STATUS_COMPLETED){ return AjaxResult.error("任务已完成"); } //3、修改该任务为空出,过后处理 taskHeader.setExceptionCode("空出处理"); + taskHeader.setIsEmptyOut(QuantityConstant.EMPTY_OUT); Boolean flag = taskHeaderService.updateById(taskHeader); - if(flag == false){ + if(flag == false) { return AjaxResult.error("修改任务失败,空出处理失败"); } return AjaxResult.success("空出处理成功"); diff --git a/src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java index 00b237e..b3484eb 100644 --- a/src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java +++ b/src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java @@ -5,12 +5,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.huaheng.api.wcs.domain.TaskFinishDomain; +import com.huaheng.api.wcs.service.warecellAllocation.LocationAllocationService; import com.huaheng.api.wcs.service.warecellAllocation.WarecellAllocationService; import com.huaheng.common.constant.QuantityConstant; import com.huaheng.common.exception.service.ServiceException; import com.huaheng.common.utils.StringUtils; import com.huaheng.common.utils.security.ShiroUtils; import com.huaheng.framework.web.domain.AjaxResult; +import com.huaheng.framework.web.service.ConfigService; import com.huaheng.pc.config.FilterConfigDetail.domain.FilterConfigDetail; import com.huaheng.pc.config.FilterConfigDetail.service.FilterConfigDetailService; import com.huaheng.pc.config.container.domain.Container; @@ -19,6 +21,8 @@ import com.huaheng.pc.config.location.domain.Location; import com.huaheng.pc.config.location.service.LocationService; import com.huaheng.pc.config.locationType.domain.LocationType; import com.huaheng.pc.config.locationType.service.LocationTypeService; +import com.huaheng.pc.config.material.domain.Material; +import com.huaheng.pc.config.material.service.MaterialService; import com.huaheng.pc.receipt.receiptContainerDetail.domain.ReceiptContainerDetail; import com.huaheng.pc.receipt.receiptContainerDetail.service.ReceiptContainerDetailService; import com.huaheng.pc.receipt.receiptContainerHeader.domain.ReceiptContainerHeader; @@ -63,6 +67,12 @@ public class OverrideHandleServiceImpl implements OverrideHandleService { private ReceivingService receivingService; @Resource private ContainerService containerService; + @Resource + private LocationAllocationService locationAllocationService; + @Resource + private ConfigService configService; + @Resource + private MaterialService materialService; /** * 重入处理 * 1、判断非空字段 @@ -77,7 +87,7 @@ public class OverrideHandleServiceImpl implements OverrideHandleService { String taskNo = taskFinishDomain.getTaskNo(); //1、判断非空字段 - if(StringUtils.isEmpty(taskNo)){ + if(StringUtils.isEmpty(taskNo)) { return AjaxResult.error("任务号为空"); } @@ -86,9 +96,9 @@ public class OverrideHandleServiceImpl implements OverrideHandleService { if(taskHeader == null){ return AjaxResult.error("任务号错误,没有找到该任务"); } - + String warehouseCode = taskHeader.getWarehouseCode(); int status = taskHeader.getStatus(); - if(status == QuantityConstant.TASK_STATUS_COMPLETED){ + if(status == QuantityConstant.TASK_STATUS_COMPLETED) { return AjaxResult.error("任务已完成"); } @@ -96,7 +106,7 @@ public class OverrideHandleServiceImpl implements OverrideHandleService { //修改原来目的库位的状态 LambdaQueryWrapper<Location> locationLam = Wrappers.lambdaQuery(); locationLam.eq(Location::getCode,taskHeader.getToLocation()) - .eq(Location::getWarehouseCode, ShiroUtils.getWarehouseCode()); + .eq(Location::getWarehouseCode, warehouseCode); Location location = locationService.getOne(locationLam); if(location == null) { return AjaxResult.error("此任务的原目的库位在系统中不存在"); @@ -104,26 +114,23 @@ public class OverrideHandleServiceImpl implements OverrideHandleService { location.setStatus(QuantityConstant.STATUS_LOCATION_EMPTY); location.setContainerCode(""); Boolean flag = locationService.updateById(location); - if(flag == false){ + if(flag == false) { return AjaxResult.error("修改此任务的原目的库位错误"); } - - /** * 查看新库位有两种情况 * 1、重入的库位由wcs提供 * 2、重入的库位由wms提供 */ - Location newlocation = new Location(); String newLocationCode = null; String redirectionLocation = taskFinishDomain.getRedirectionLocationCode(); //重入的库位由wcs提供 - if(!"0".equals(redirectionLocation)) { + if(redirectionLocation != null && !"0".equals(redirectionLocation)) { LambdaQueryWrapper<Location> locationLa = Wrappers.lambdaQuery(); locationLa.eq(Location::getCode, redirectionLocation) .eq(Location::getStatus,QuantityConstant.STATUS_LOCATION_EMPTY) - .eq(Location::getWarehouseCode, ShiroUtils.getWarehouseCode()); + .eq(Location::getWarehouseCode, warehouseCode); newlocation = locationService.getOne(locationLa); if (newlocation == null) { throw new ServiceException("新目的库位在系统中不存在或非空闲"); @@ -131,55 +138,39 @@ public class OverrideHandleServiceImpl implements OverrideHandleService { if(StringUtils.isNotEmpty(newlocation.getContainerCode())){ throw new ServiceException("新目的库位在系统中已经有容器"); } - }else { + } else { //重入的库位由wms提供 //查询任务明细 - LambdaQueryWrapper<TaskDetail> taskDetailLambda = Wrappers.lambdaQuery(); - taskDetailLambda.eq(TaskDetail::getTaskId, taskFinishDomain.getTaskNo()); - List<TaskDetail> taskDetailList = taskDetailService.list(taskDetailLambda); - String locatingRule = warecellAllocationService.taskPositioning(); - String[] locatingRules = locatingRule.split("cut"); - LambdaQueryWrapper<Location> locationLambda = Wrappers.lambdaQuery(); - locationLambda.last(locatingRules[0]); - locationLambda.eq(Location::getWarehouseCode, ShiroUtils.getWarehouseCode()); - List<Location> locationList = locationService.list(locationLambda); - List<Location> removeLocaationList = new ArrayList<>(); - for(Location location1 : locationList) { - if (taskHeaderService.getUncompleteTaskInNear(location1) > 0) { - removeLocaationList.add(location1); - } else { - break; - } + String value = configService.getKey(QuantityConstant.RULE_ALLOCATION); + if (StringUtils.isEmpty(value)) { + return AjaxResult.error("未绑定定位规则"); } - locationList.removeAll(removeLocaationList); - if (locationList == null || locationList.size() == 0) { - locationLambda.last(locatingRules[1]); - locationList = locationService.list(locationLambda); - removeLocaationList = new ArrayList<>(); - for(Location location1 : locationList) { - if (taskHeaderService.getUncompleteTaskInNear(location1) > 0) { - removeLocaationList.add(location1); - } else { - break; - } - } - locationList.removeAll(removeLocaationList); + int allocationRule = Integer.parseInt(value); + List<String> locationTypeCodeList = new ArrayList<>(); + String locationType = location.getLocationType(); + if(StringUtils.isNotEmpty(locationType)) { + locationTypeCodeList.add(locationType); + } + int high = location.getHigh(); + String destination = location.getArea(); + String containerCode = taskHeader.getContainerCode(); + List<TaskDetail> taskDetailList = taskDetailService.findByTaskId(taskHeader.getId()); + String materialCode = taskDetailList.get(0).getMaterialCode(); + Material material = materialService.findAllByCode(materialCode, warehouseCode); + String materialAreaCode = material.getMaterialAreaCode(); + String locationCode = locationAllocationService.allocation(allocationRule, + locationTypeCodeList, high, destination, warehouseCode, containerCode, materialAreaCode); + if (StringUtils.isEmpty(locationCode)) { + return AjaxResult.error("没有库位可分配"); } - - LambdaQueryWrapper<LocationType> lambdaQueryWrapper2 = Wrappers.lambdaQuery(); - List<LocationType> locationTypeList = locationTypeService.list(lambdaQueryWrapper2); - //根据定位规则查询库位编码 - QueryWrapper<Location> locationLambdaQueryWrapper = new QueryWrapper<>(); - locationLambdaQueryWrapper.eq("1", 1).last(locatingRules[0]); - newlocation = locationService.getOne(locationLambdaQueryWrapper); - Container container = containerService.getContainerByCode(taskHeader.getContainerCode()); - String locationCode = receivingService.filter(locationList, locationTypeList, container); - newLocationCode = locationCode; if (taskHeader.getInternalTaskType().equals(QuantityConstant.TASK_INTENERTYPE_RECEIPT)) { //查询入库组盘明细 List<ReceiptContainerDetail> receiptContainerDetailList = new ArrayList<>(); - for (TaskDetail taskDetail : taskDetailList) { - receiptContainerDetailList.add(receiptContainerDetailService.getById(taskDetail.getAllocationId())); + if(taskDetailList != null) { + for (TaskDetail taskDetail : taskDetailList) { + receiptContainerDetailList.add(receiptContainerDetailService. + getById(taskDetail.getAllocationId())); + } } ReceiptContainerHeader receiptContainerHeader = receiptContainerHeaderService.getById(receiptContainerDetailList.get(0).getReceiptContainerId()); LambdaUpdateWrapper<ReceiptContainerDetail> wrapper = Wrappers.lambdaUpdate(); @@ -189,27 +180,35 @@ public class OverrideHandleServiceImpl implements OverrideHandleService { receiptContainerHeader.setToLocation(locationCode); receiptContainerHeaderService.updateById(receiptContainerHeader); } + newLocationCode = locationCode; + } + if (StringUtils.isEmpty(newLocationCode)) { + return AjaxResult.error("没有库位可以分配"); } + locationService.updateStatus(newLocationCode, QuantityConstant.STATUS_LOCATION_LOCK, warehouseCode); + String toLocationCode = taskHeader.getToLocation(); //修改任务 taskHeader.setToLocation(newLocationCode); taskHeader.setExceptionCode("重入处理"); + taskHeader.setIsDoubleIn(QuantityConstant.DOUBLE_IN); + taskHeader.setOriginLocation(toLocationCode); if(!taskHeaderService.updateById(taskHeader)){ throw new ServiceException("修改此任务错误"); } //修改子任务 LambdaQueryWrapper<TaskDetail> taskDetailLam = Wrappers.lambdaQuery(); - taskDetailLam.eq(TaskDetail::getWarehouseCode,ShiroUtils.getWarehouseCode()) + taskDetailLam.eq(TaskDetail::getWarehouseCode, warehouseCode) .eq(TaskDetail::getTaskId,taskHeader.getId()); List<TaskDetail> taskDetails = taskDetailService.list(taskDetailLam); List<TaskDetail> taskDetailList = new ArrayList<>(); - if(taskDetails != null && taskDetails.size()> 0){ + if(taskDetails != null && taskDetails.size()> 0) { for(TaskDetail taskDetail : taskDetails){ taskDetail.setToLocation(newLocationCode); taskDetailList.add(taskDetail); } - if(!taskDetailService.updateBatchById(taskDetailList)){ + if(!taskDetailService.updateBatchById(taskDetailList)) { throw new ServiceException("修改此任务的明细错误"); } } diff --git a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationService.java b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationService.java index 3868091..ccbaf4d 100644 --- a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationService.java +++ b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationService.java @@ -6,7 +6,7 @@ import java.util.List; public interface LocationAllocationService { - String allocation(int locationRule, List<String> locationTypeCodeList, int high, String destination, String warehouseCode, String containerCode, String materialAreaCode); + String allocation(int locationRule, List<String> locationTypeCodeList, int high, String area, String warehouseCode, String containerCode, String materialAreaCode); } diff --git a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationServiceImpl.java index 729bfde..2803acb 100644 --- a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationServiceImpl.java +++ b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/LocationAllocationServiceImpl.java @@ -39,7 +39,8 @@ public class LocationAllocationServiceImpl implements LocationAllocationService private TaskHeaderService taskHeaderService; @Override - public String allocation(int locationRule, List<String> locationTypeCodeList, int high, String area, String warehouseCode, String containerCode, String materialAreaCode) { + public String allocation(int locationRule, List<String> locationTypeCodeList, + int high, String area, String warehouseCode, String containerCode, String materialAreaCode) { LambdaQueryWrapper<Container> containerLambdaQueryWrapper = Wrappers.lambdaQuery(); containerLambdaQueryWrapper.eq(Container::getCode, containerCode) .eq(Container::getWarehouseCode, warehouseCode); diff --git a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java index 0ec3d1c..ebe9f69 100644 --- a/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java +++ b/src/main/java/com/huaheng/api/wcs/service/warecellAllocation/WarecellAllocationServiceImpl.java @@ -146,7 +146,7 @@ public class WarecellAllocationServiceImpl implements WarecellAllocationService return AjaxResult.error("任务已经完成,不能再分库位"); } String containerCode = taskHeader.getContainerCode(); - Container container = containerService.getContainerByCode(containerCode); + Container container = containerService.getContainerByCode(containerCode, warehouseCode); if(container == null) { return AjaxResult.error("分配库位时,任务托盘为空"); } @@ -197,14 +197,13 @@ public class WarecellAllocationServiceImpl implements WarecellAllocationService return AjaxResult.error("没有库位可分配"); } - if (StringUtils.isNotEmpty(locationCode)) { - locationService.updateStatus(locationCode, QuantityConstant.STATUS_LOCATION_LOCK, warehouseCode); - if (StringUtils.isNotEmpty(taskHeader.getToLocation()) && !locationCode.equals(taskHeader.getToLocation())) { - locationService.updateStatus(taskHeader.getToLocation(), QuantityConstant.STATUS_LOCATION_EMPTY, warehouseCode); - } - } else { - throw new ServiceException("定位失败,请检查定位规则是否正确"); + locationService.updateStatus(locationCode, QuantityConstant.STATUS_LOCATION_LOCK, warehouseCode); + if (StringUtils.isNotEmpty(taskHeader.getToLocation()) && + !locationCode.equals(taskHeader.getToLocation())) { + locationService.updateStatus(taskHeader.getToLocation(), + QuantityConstant.STATUS_LOCATION_EMPTY, warehouseCode); } + if (receiptContainerDetailList != null && receiptContainerDetailList.size() > 0) { //更新库位编码到组盘头表 ReceiptContainerDetail receiptContainerDetail = receiptContainerDetailList.get(0); diff --git a/src/main/java/com/huaheng/common/constant/QuantityConstant.java b/src/main/java/com/huaheng/common/constant/QuantityConstant.java index f3b980f..2806e8c 100644 --- a/src/main/java/com/huaheng/common/constant/QuantityConstant.java +++ b/src/main/java/com/huaheng/common/constant/QuantityConstant.java @@ -410,5 +410,12 @@ public class QuantityConstant { public static final int RYTASK_STATUS_RUN = 0; public static final int RYTASK_STATUS_STOP = 1; + public static final int DOUBLE_IN = 1; + public static final int NORMAL_IN = 0; + + public static final int EMPTY_OUT = 1; + public static final int NORMAL_OUT = 0; + + public static String ryTask_warehouse_code; } diff --git a/src/main/java/com/huaheng/pc/config/container/service/ContainerService.java b/src/main/java/com/huaheng/pc/config/container/service/ContainerService.java index 527e74c..518ff91 100644 --- a/src/main/java/com/huaheng/pc/config/container/service/ContainerService.java +++ b/src/main/java/com/huaheng/pc/config/container/service/ContainerService.java @@ -29,6 +29,7 @@ public interface ContainerService extends IService<Container>{ Container getContainerByCode(String containCode); + Container getContainerByCode(String containCode, String warehouseCode); //获得空货架编号 List<Container> selectListShelf(); diff --git a/src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java b/src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java index 311e7d9..7aba79d 100644 --- a/src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java +++ b/src/main/java/com/huaheng/pc/config/container/service/ContainerServiceImpl.java @@ -177,6 +177,11 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container return containerMapper.findAllByCode(code, ShiroUtils.getWarehouseCode()); } + @Override + public Container getContainerByCode(String containCode, String warehouseCode) { + return containerMapper.findAllByCode(containCode, warehouseCode); + } + @Override public List<Container> selectListShelf() { diff --git a/src/main/java/com/huaheng/pc/inventory/adjustDetail/controller/adjustDetailController.java b/src/main/java/com/huaheng/pc/inventory/adjustDetail/controller/adjustDetailController.java index 0834745..fc828ed 100644 --- a/src/main/java/com/huaheng/pc/inventory/adjustDetail/controller/adjustDetailController.java +++ b/src/main/java/com/huaheng/pc/inventory/adjustDetail/controller/adjustDetailController.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.huaheng.common.constant.QuantityConstant; import com.huaheng.common.exception.service.ServiceException; import com.huaheng.common.support.Convert; import com.huaheng.common.utils.StringUtils; @@ -19,12 +20,17 @@ import com.huaheng.pc.inventory.adjustDetail.domain.AdjustDetail; import com.huaheng.pc.inventory.adjustDetail.service.AdjustDetailService; import com.huaheng.pc.inventory.adjustHeader.domain.AdjustHeader; import com.huaheng.pc.inventory.adjustHeader.mapper.AdjustHeaderMapper; +import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; +import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; +import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader; +import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; @@ -37,6 +43,10 @@ public class adjustDetailController extends BaseController { private AdjustHeaderMapper adjustHeaderMapper; @Resource private AdjustDetailService adjustDetailService; + @Resource + private InventoryDetailService inventoryDetailService; + @Resource + private InventoryHeaderService inventoryHeaderService; @@ -168,6 +178,25 @@ public class adjustDetailController extends BaseController { return AjaxResult.error("不能重复调整!"); } ajaxResult1 = adjustDetailService.updateAdjustDetail(adjustDetailEdit); + InventoryDetail inventoryDetail = inventoryDetailService.getById(adjustDetailEdit.getInventoryDetailId()); + if(inventoryDetail != null) { + InventoryHeader header = inventoryHeaderService.getById(inventoryDetail.getInventoryHeaderId()); + LambdaQueryWrapper<InventoryDetail> inventory = Wrappers.lambdaQuery(); + inventory.eq(InventoryDetail::getInventoryHeaderId, header.getId()); + List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(inventory); + BigDecimal totalQty = new BigDecimal(0); + int totalLines = 0; + for (InventoryDetail inventoryDetail3 : inventoryDetailList) { + totalQty = totalQty.add(inventoryDetail3.getQty()); + totalLines++; + } + header.setTotalQty(totalQty); + header.setTotalLines(totalLines); + header.setContainerStatus(QuantityConstant.STATUS_CONTAINER_SOME); + LambdaQueryWrapper<InventoryHeader> wrapper = Wrappers.lambdaQuery(); + wrapper.eq(InventoryHeader::getId, header.getId()); + inventoryHeaderService.update(header, wrapper); + } } return ajaxResult1; } diff --git a/src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailServiceImpl.java b/src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailServiceImpl.java index d6bbf3d..71898fd 100644 --- a/src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailServiceImpl.java +++ b/src/main/java/com/huaheng/pc/inventory/adjustDetail/service/AdjustDetailServiceImpl.java @@ -183,11 +183,9 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj if(adjustDetail.getStatus() == 1){ AjaxResult.error("该单据已调整,不允许再次调整!" ); } - //查询调整的库存明细 - InventoryDetail inventoryDetail; //调整单中不带库存明细时不查询 if(adjustDetail.getInventoryDetailId() != null) { - inventoryDetail = inventoryDetailService.getById(adjustDetail.getInventoryDetailId()); + InventoryDetail inventoryDetail = inventoryDetailService.getById(adjustDetail.getInventoryDetailId()); if (!adjustDetail.getLocationCode().equals(inventoryDetail.getLocationCode()) || !adjustDetail.getContainerCode().equals(inventoryDetail.getContainerCode())) { return AjaxResult.error("调整单和所调整库存的库位容器不符,前检查数据"); @@ -318,6 +316,7 @@ public class AdjustDetailServiceImpl extends ServiceImpl<AdjustDetailMapper, Adj inventoryDetail.setLastUpdated(new Date()); inventoryDetailService.saveOrUpdate(inventoryDetail); + //写入库存交易,2条一条出,一条入 //调整出 InventoryTransaction inventoryTransaction = new InventoryTransaction(); diff --git a/src/main/java/com/huaheng/pc/shipment/shippingCombination/service/ShippingCombinationService.java b/src/main/java/com/huaheng/pc/shipment/shippingCombination/service/ShippingCombinationService.java index 7190196..2fb3ad7 100644 --- a/src/main/java/com/huaheng/pc/shipment/shippingCombination/service/ShippingCombinationService.java +++ b/src/main/java/com/huaheng/pc/shipment/shippingCombination/service/ShippingCombinationService.java @@ -62,7 +62,7 @@ public class ShippingCombinationService { slam.eq(ShipmentPreference::getCode,configValue.getIdentifier()) .eq(ShipmentPreference::getWarehouseCode,configValue.getWarehouseCode()); ShipmentPreference shipmentPreference = shipmentPreferenceService.getOne(slam); - if(shipmentPreference == null){ + if(shipmentPreference == null) { throw new ServiceException("仓库的出库配置中出库首选项不存在"); } diff --git a/src/main/resources/templates/config/container/container.html b/src/main/resources/templates/config/container/container.html index 6f178ab..83e7dbc 100644 --- a/src/main/resources/templates/config/container/container.html +++ b/src/main/resources/templates/config/container/container.html @@ -58,7 +58,7 @@ <i class="fa fa-trash-o"></i> 删除 </a> - <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.batPrint()" shiro:hasPermission="config:container:print"> + <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.batPrint()" shiro:hasPermission="config:container:print"> <i class="fa fa-plus"></i> 打印 </a> </div> diff --git a/src/main/resources/templates/config/location/location.html b/src/main/resources/templates/config/location/location.html index 5205a50..4eb1e85 100644 --- a/src/main/resources/templates/config/location/location.html +++ b/src/main/resources/templates/config/location/location.html @@ -72,10 +72,10 @@ <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.add()" shiro:hasPermission="config:location:add"> <i class="fa fa-plus"></i> 新增 </a> - <a class="btn btn-outline btn-primary btn-rounded" onclick="addBatch()" shiro:hasPermission="config:location:addBatch"> + <a class="btn btn-outline btn-primary btn-rounded" onclick="addBatch()" shiro:hasPermission="config:location:add"> <i class="fa fa-plus-square-o"></i> 批量新增 </a> - <a class="btn btn-outline btn-primary btn-rounded" onclick="editBatch()" shiro:hasPermission="config:location:addBatch"> + <a class="btn btn-outline btn-primary btn-rounded" onclick="editBatch()" shiro:hasPermission="config:location:edit"> <i class="fa fa-edit"></i> 批量修改 </a> <a class="btn btn-outline btn-success btn-rounded" onclick="$.operate.batPrint()" shiro:hasPermission="inventory:inventoryTransaction:report">