diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordEntity.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordEntity.java index 111825a43..b6087a7c6 100644 --- a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordEntity.java +++ b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordEntity.java @@ -35,7 +35,7 @@ public class AftersalesAbnormalRecordEntity extends TenantEntity { private String type; - @ApiModelProperty(name = "异常类型 1无系统编码 2无装车计划 3无装车记录 4无卸车记录",notes = "") + @ApiModelProperty(name = "异常类型 1无系统编码 2无装车计划 3无装车记录 4无卸车记录 5卸车数量异常",notes = "") private String abnormalType; @ApiModelProperty(name = "车类型 1干线",notes = "") @@ -96,6 +96,12 @@ public class AftersalesAbnormalRecordEntity extends TenantEntity { @ApiModelProperty(name = "关联类型",notes = "") private Integer associationType; + @ApiModelProperty(name = "是否是零担",notes = "") + private Integer isZero; + + @ApiModelProperty(name = "数量",notes = "") + private Integer num; + } diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesAbnormalRecordClient.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesAbnormalRecordClient.java index 4ce50939c..7ff999f08 100644 --- a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesAbnormalRecordClient.java +++ b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesAbnormalRecordClient.java @@ -26,7 +26,6 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; -import java.util.Map; /** * 货位 Feign接口类 @@ -57,4 +56,6 @@ public interface IAftersalesAbnormalRecordClient { @PostMapping(API_PREFIX+"/updateList") void updateList(@RequestBody List abnormalRecordEntities); + @PostMapping(API_PREFIX+"/addAbnormalRecordList") + void addAbnormalRecordList(@RequestBody List abnormalRecordEntities); } diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java index c4e52e963..30fe2601b 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java @@ -201,4 +201,7 @@ public interface IDistributionParcelListClient { @PostMapping(API_PREFIX + "/findAllParcelListByAdvanceIds") List findAllParcelListByAdvanceIds(@RequestBody List advanceIds); + + @PostMapping(API_PREFIX + "/addZeroParcelList") + void addZeroParcelList(@RequestBody List addParcelListEntityList); } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineCarsLoadScanClient.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineCarsLoadScanClient.java index f02a97991..7e0eb4665 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineCarsLoadScanClient.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineCarsLoadScanClient.java @@ -1,9 +1,12 @@ package com.logpm.trunkline.feign; +import com.logpm.trunkline.entity.TrunklineCarsLoadScanEntity; import org.springblade.common.constant.ModuleNameConstant; import org.springblade.core.tool.api.R; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; @FeignClient( @@ -22,6 +25,13 @@ public interface ITrunklineCarsLoadScanClient { @GetMapping(API_PREFIX+"/adnormalHasStock") R adnormalHasStock(@RequestParam Long carsLoadScanId, @RequestParam Long warehouseId); + @GetMapping(API_PREFIX+"/findEntityById") + TrunklineCarsLoadScanEntity findEntityById(@RequestParam Long associationId); + + @PostMapping(API_PREFIX+"/updateEntity") + void updateEntity(@RequestBody TrunklineCarsLoadScanEntity carsLoadScanEntity); + + // @PostMapping(API_PREFIX+"/addAdvanceReturnId") // Long addAdvanceReturnId(@RequestBody TrunklineAdvanceEntity trunklineAdvanceEntity); diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesAbnormalRecordClient.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesAbnormalRecordClient.java index 3e5e07f78..dc1820ef3 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesAbnormalRecordClient.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesAbnormalRecordClient.java @@ -49,4 +49,9 @@ public class AftersalesAbnormalRecordClient implements IAftersalesAbnormalRecord public void updateList(List abnormalRecordEntities) { aftersalesAbnormalRecordService.updateBatchById(abnormalRecordEntities); } + + @Override + public void addAbnormalRecordList(List abnormalRecordEntities) { + aftersalesAbnormalRecordService.saveBatch(abnormalRecordEntities); + } } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java index 2b490a35a..a73a66cd7 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java @@ -9,6 +9,11 @@ import com.logpm.aftersales.mapper.AftersalesAbnormalRecordMapper; import com.logpm.aftersales.service.IAftersalesAbnormalRecordService; import com.logpm.basicdata.entity.BasicdataWarehouseEntity; import com.logpm.basicdata.feign.IBasicdataWarehouseClient; +import com.logpm.distribution.entity.DistributionParcelListEntity; +import com.logpm.distribution.entity.DistributionStockArticleEntity; +import com.logpm.distribution.feign.IDistributionParcelListClient; +import com.logpm.distribution.feign.IDistributionStockArticleClient; +import com.logpm.trunkline.entity.TrunklineCarsLoadScanEntity; import com.logpm.trunkline.feign.ITrunklineCarsLoadScanClient; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -16,6 +21,7 @@ import org.springblade.common.utils.CommonUtil; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.BeanUtil; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -33,6 +39,10 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl page = new Page<>(); @@ -117,6 +127,158 @@ public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl 0){ + Date now = new Date(); + int diff = num - enterNum; + Long warehouseId = abnormalRecordEntity.getWarehouseId(); + BasicdataWarehouseEntity warehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(warehouseId); + if(diff == 0){ + //全部入库到本仓 + DistributionStockArticleEntity currentStockArticleEntity = stockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId); + if(Objects.isNull(currentStockArticleEntity)){ + currentStockArticleEntity = new DistributionStockArticleEntity(); + Integer totalNumber = stockArticleEntity.getTotalNumber(); + BeanUtil.copy(stockArticleEntity,currentStockArticleEntity); + currentStockArticleEntity.setId(null); + currentStockArticleEntity.setHandQuantity(enterNum); + currentStockArticleEntity.setWarehouseId(warehouseId); + currentStockArticleEntity.setWarehouse(warehouseEntity.getName()); + currentStockArticleEntity.setWarehouseEntryTime(now); + currentStockArticleEntity.setCompleteSet(1); + currentStockArticleEntity.setOrderReceiveStatus("20"); + if(totalNumber.equals(enterNum)){ + currentStockArticleEntity.setCompleteSet(2); + currentStockArticleEntity.setOrderReceiveStatus("30"); + } + currentStockArticleEntity.setStockupStatus("10"); + currentStockArticleEntity.setReservationStatus("10"); + currentStockArticleEntity.setOrderStatus("20"); + currentStockArticleEntity.setGroundingStatus("10"); + currentStockArticleEntity.setFreezeStatus("10"); + currentStockArticleEntity.setWarehouseEntryTimeEnd(now); + currentStockArticleEntity.setSortingQuantity(0); + currentStockArticleEntity.setDeliveryQuantity(0); + currentStockArticleEntity.setTransferQuantity(0); + currentStockArticleEntity.setSigninQuantity(0); + currentStockArticleEntity.setAllocation(null); + currentStockArticleEntity.setTrays(null); + currentStockArticleEntity.setIncomingNum(enterNum); + Long orderId = stockArticleClient.addData(currentStockArticleEntity); + if(!Objects.isNull(orderId)){ + List addParcelListEntityList = new ArrayList<>(); + List parcelListEntityList = parcelListClient.findEntityListByOrderCode(orderCode, warehouseId); + parcelListEntityList.forEach(parcelListEntity -> { + DistributionParcelListEntity currentParcelListEntity = new DistributionParcelListEntity(); + BeanUtil.copy(parcelListEntity,currentParcelListEntity); + Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId(); + currentParcelListEntity.setId(null); + currentParcelListEntity.setGoodsAllocation(null); + currentParcelListEntity.setStockArticleId(orderId); + currentParcelListEntity.setPallet(null); + currentParcelListEntity.setWarehouseId(warehouseId); + currentParcelListEntity.setWarehouse(warehouseEntity.getName()); + currentParcelListEntity.setIsTransfer(1); + if(acceptWarehouseId.equals(warehouseId)){ + currentParcelListEntity.setIsTransfer(0); + } + addParcelListEntityList.add(currentParcelListEntity); + }); + parcelListClient.addZeroParcelList(addParcelListEntityList); + } + }else{ + + stockArticleClient.addHandQuantity(currentStockArticleEntity.getId(),enterNum); + + } + abnormalRecordEntity.setRemark("差异"+enterNum+"件数入库本仓"); + + }else{ + //回退原仓库 + stockArticleClient.addHandQuantity(stockId,diff); + + //全部入库到本仓 + DistributionStockArticleEntity currentStockArticleEntity = stockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode, warehouseId); + if(Objects.isNull(currentStockArticleEntity)){ + currentStockArticleEntity = new DistributionStockArticleEntity(); + Integer totalNumber = stockArticleEntity.getTotalNumber(); + BeanUtil.copy(stockArticleEntity,currentStockArticleEntity); + currentStockArticleEntity.setId(null); + currentStockArticleEntity.setHandQuantity(enterNum); + currentStockArticleEntity.setWarehouseId(warehouseId); + currentStockArticleEntity.setWarehouse(warehouseEntity.getName()); + currentStockArticleEntity.setWarehouseEntryTime(now); + currentStockArticleEntity.setCompleteSet(1); + currentStockArticleEntity.setOrderReceiveStatus("20"); + if(totalNumber.equals(enterNum)){ + currentStockArticleEntity.setCompleteSet(2); + currentStockArticleEntity.setOrderReceiveStatus("30"); + } + currentStockArticleEntity.setStockupStatus("10"); + currentStockArticleEntity.setReservationStatus("10"); + currentStockArticleEntity.setOrderStatus("20"); + currentStockArticleEntity.setGroundingStatus("10"); + currentStockArticleEntity.setFreezeStatus("10"); + currentStockArticleEntity.setWarehouseEntryTimeEnd(now); + currentStockArticleEntity.setSortingQuantity(0); + currentStockArticleEntity.setDeliveryQuantity(0); + currentStockArticleEntity.setTransferQuantity(0); + currentStockArticleEntity.setSigninQuantity(0); + currentStockArticleEntity.setAllocation(null); + currentStockArticleEntity.setTrays(null); + currentStockArticleEntity.setIncomingNum(enterNum); + Long orderId = stockArticleClient.addData(currentStockArticleEntity); + if(!Objects.isNull(orderId)){ + List addParcelListEntityList = new ArrayList<>(); + List parcelListEntityList = parcelListClient.findEntityListByOrderCode(orderCode, warehouseId); + parcelListEntityList.forEach(parcelListEntity -> { + DistributionParcelListEntity currentParcelListEntity = new DistributionParcelListEntity(); + BeanUtil.copy(parcelListEntity,currentParcelListEntity); + Long acceptWarehouseId = parcelListEntity.getAcceptWarehouseId(); + currentParcelListEntity.setId(null); + currentParcelListEntity.setGoodsAllocation(null); + currentParcelListEntity.setStockArticleId(orderId); + currentParcelListEntity.setPallet(null); + currentParcelListEntity.setWarehouseId(warehouseId); + currentParcelListEntity.setWarehouse(warehouseEntity.getName()); + currentParcelListEntity.setIsTransfer(1); + if(acceptWarehouseId.equals(warehouseId)){ + currentParcelListEntity.setIsTransfer(0); + } + addParcelListEntityList.add(currentParcelListEntity); + }); + parcelListClient.addZeroParcelList(addParcelListEntityList); + } + }else{ + + stockArticleClient.addHandQuantity(currentStockArticleEntity.getId(),enterNum); + + } + abnormalRecordEntity.setRemark("差异"+enterNum+"件数入库本仓,原仓返回"+diff+"件"); + } + carsLoadScanEntity.setScanStatus("2"); + carsLoadScanEntity.setUnloadNum(carsLoadScanEntity.getUnloadNum()+enterNum); + trunklineCarsLoadScanClient.updateEntity(carsLoadScanEntity); + } + } + } } abnormalRecordEntity.setAbnormalStatus(1); abnormalRecordEntity.setDealTime(new Date()); diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java index f0d9e8ea2..55e3c569a 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java @@ -27,8 +27,10 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.logpm.distribution.dto.FindParamterDTO; import com.logpm.distribution.dto.OrderPackageDTO; import com.logpm.distribution.entity.DistributionParcelListEntity; +import com.logpm.distribution.entity.DistributionParcelNumberEntity; import com.logpm.distribution.entity.DistributionStockArticleEntity; import com.logpm.distribution.service.IDistributionParcelListService; +import com.logpm.distribution.service.IDistributionParcelNumberService; import com.logpm.distribution.service.IDistributionStockArticleService; import com.logpm.distribution.vo.DistributionParcelListVO; import lombok.AllArgsConstructor; @@ -61,6 +63,7 @@ public class DistributionParcelListClient implements IDistributionParcelListClie private final IDistributionParcelListService distributionParcelListService; private final IDistributionStockArticleService distributionStockArticleService; + private final IDistributionParcelNumberService distributionParcelNumberService; /** * 查询包件信息 @@ -468,4 +471,25 @@ public class DistributionParcelListClient implements IDistributionParcelListClie return list; } + + @Override + public void addZeroParcelList(List addParcelListEntityList) { + distributionParcelListService.saveBatch(addParcelListEntityList); + List addList = new ArrayList<>(); + addParcelListEntityList.forEach(parcelListEntity -> { + + DistributionParcelNumberEntity parcelNumberEntity = new DistributionParcelNumberEntity(); + parcelNumberEntity.setStockArticleId(parcelListEntity.getStockArticleId()); + parcelNumberEntity.setParcelListId(parcelListEntity.getId()); + parcelNumberEntity.setQuantity(parcelListEntity.getQuantity()); + parcelNumberEntity.setHandQuantity(parcelListEntity.getQuantity()); + parcelNumberEntity.setDeliveryQuantity(0); + parcelNumberEntity.setSigninQuantity(0); + parcelNumberEntity.setOutboundQuantity(0); + parcelNumberEntity.setWarehouseId(parcelListEntity.getWarehouseId()); + addList.add(parcelNumberEntity); + }); + distributionParcelNumberService.saveBatch(addList); + + } } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/CarsLoadController.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/CarsLoadController.java index ce7cd0bed..a7bf6b131 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/CarsLoadController.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/CarsLoadController.java @@ -1801,12 +1801,12 @@ public class CarsLoadController { try{ //当前登录人选择的仓库 -// BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); -// if(Objects.isNull(myCurrentWarehouse)){ -// log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse); -// return R.fail(400,"多仓权限无法操作,请选择仓库"); -// } -// loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId()); + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if(Objects.isNull(myCurrentWarehouse)){ + log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse); + return R.fail(400,"多仓权限无法操作,请选择仓库"); + } + loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId()); if(Objects.isNull(loadId)){ log.warn(method+"配载id为空 loadId={}",loadId); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineCarsLoadScanClient.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineCarsLoadScanClient.java index ab684949b..11a254d67 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineCarsLoadScanClient.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineCarsLoadScanClient.java @@ -1,5 +1,7 @@ package com.logpm.trunkline.feign; +import com.logpm.trunkline.entity.TrunklineCarsLoadScanEntity; +import com.logpm.trunkline.service.ITrunklineCarsLoadScanService; import com.logpm.trunkline.service.ITrunklineCarsLoadService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -14,6 +16,7 @@ import springfox.documentation.annotations.ApiIgnore; public class TrunklineCarsLoadScanClient implements ITrunklineCarsLoadScanClient{ private final ITrunklineCarsLoadService trunklineCarsLoadService; + private final ITrunklineCarsLoadScanService trunklineCarsLoadScanService; @Override @@ -30,4 +33,14 @@ public class TrunklineCarsLoadScanClient implements ITrunklineCarsLoadScanClient public R adnormalHasStock(Long carsLoadScanId, Long warehouseId) { return trunklineCarsLoadService.adnormalHasStock(carsLoadScanId,warehouseId); } + + @Override + public TrunklineCarsLoadScanEntity findEntityById(Long associationId) { + return trunklineCarsLoadScanService.getById(associationId); + } + + @Override + public void updateEntity(TrunklineCarsLoadScanEntity carsLoadScanEntity) { + trunklineCarsLoadScanService.updateById(carsLoadScanEntity); + } } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java index bfa5ebb27..5d2f1c1e5 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java @@ -167,4 +167,6 @@ public interface TrunklineCarsLoadScanMapper extends BaseMapper findAbnormalZeroScanList(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml index 086529794..94e363af6 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml @@ -557,6 +557,7 @@ where load_id = #{loadId} and final_node_id = #{warehouseId} and scan_status = '1' + and type = 1 + +