diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineCarsLoadClient.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineCarsLoadClient.java index 9adbaf718..b068d75c2 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineCarsLoadClient.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineCarsLoadClient.java @@ -18,4 +18,7 @@ public interface ITrunklineCarsLoadClient { @GetMapping(API_PREFIX+"/findEntityByLoadId") TrunklineCarsLoadEntity findEntityByLoadId(@RequestParam Long loadId); + + @GetMapping(API_PREFIX+"/updateCardLoadNum") + void updateCardLoadNum(@RequestParam Long loadId); } 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 7e0eb4665..31d21c9f1 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 @@ -9,6 +9,8 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; +import java.util.List; + @FeignClient( value = ModuleNameConstant.APPLICATION_TRUNKLINE_NAME ) @@ -31,6 +33,11 @@ public interface ITrunklineCarsLoadScanClient { @PostMapping(API_PREFIX+"/updateEntity") void updateEntity(@RequestBody TrunklineCarsLoadScanEntity carsLoadScanEntity); + @GetMapping(API_PREFIX+"/findAllListByLoadId") + List findAllListByLoadId(@RequestParam Long loadId); + + @PostMapping(API_PREFIX+"/removeLoadScanByIds") + void removeLoadScanByIds(@RequestBody List scanloadIdList); // @PostMapping(API_PREFIX+"/addAdvanceReturnId") diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java index 4299689fa..b8eca629b 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java @@ -1,5 +1,6 @@ package com.logpm.patch.jobhandle; +import cn.hutool.core.collection.CollUtil; import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.logpm.basicdata.entity.BasicdataWarehouseEntity; @@ -16,14 +17,8 @@ import com.logpm.patch.service.IOrderSyncRecordService; import com.logpm.patch.service.ISyncOrderInfoService; import com.logpm.patch.service.IWarehouseMappingDataService; import com.logpm.patch.vo.SyncZeroOrderVO; -import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; -import com.logpm.trunkline.entity.TrunklineAdvanceEntity; -import com.logpm.trunkline.entity.TrunklineDetailProductEntity; -import com.logpm.trunkline.entity.TrunklineWaybillOrderEntity; -import com.logpm.trunkline.feign.ITrunklineAdvanceClient; -import com.logpm.trunkline.feign.ITrunklineAdvanceDetailClient; -import com.logpm.trunkline.feign.ITrunklineDetailProductClient; -import com.logpm.trunkline.feign.ITrunklineWaybillOrderClient; +import com.logpm.trunkline.entity.*; +import com.logpm.trunkline.feign.*; import com.logpm.warehouse.entity.WarehouseWaybillEntity; import com.logpm.warehouse.feign.IWarehouseWaybillClient; import com.xxl.job.core.biz.model.ReturnT; @@ -69,6 +64,9 @@ public class SyncOrderInfoToPlatform { private final IInventoryDetailClient inventoryDetailClient; private final IOrderLocationClient orderLocationClient; + private final ITrunklineCarsLoadClient carsLoadClient; + private final ITrunklineCarsLoadScanClient carsLoadScanClient; + @XxlJob("syncOrderInfo") public ReturnT syncOrderInfo(String param) { @@ -984,4 +982,63 @@ public class SyncOrderInfoToPlatform { + @XxlJob("dealDubelCarUnloadData") + public ReturnT dealDubelCarUnloadData(String param) { + log.info("############dealDubelCarUnloadData: 处理车次重复卸车数据 开始"); + + if(StringUtil.isBlank(param)){ + log.warn("###########dealDubelCarUnloadData: 车次号为空"); + throw new CustomerException(405,"车次号为空"); + } + + String[] split = param.split(","); + + for (int i = 0; i < split.length; i++) { + String carNo = split[i]; + log.info("###################dealDubelCarUnloadData: 当前处理的车次号为 carNo={}",carNo); + + TrunklineCarsLoadEntity entityByCarsNo = carsLoadClient.findEntityByCarsNo(carNo); + Long loadId = entityByCarsNo.getId(); + //查询所有装车明细 + List carsLoadScanEntities = carsLoadScanClient.findAllListByLoadId(loadId); + + List scanloadIdList = carsLoadScanEntities.stream().map(TrunklineCarsLoadScanEntity::getId).collect(Collectors.toList()); + + + //把carsLoadScanEntities通过unloadNodeId分组 + Map> collect = carsLoadScanEntities.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getUnloadNodeId)); + + collect.keySet().forEach(unloadNodeId -> { + List trunklineCarsLoadScanEntities = collect.get(unloadNodeId); + //把trunklineCarsLoadScanEntities按照scanCode进行分组 + Map> collect1 = trunklineCarsLoadScanEntities.stream().collect(Collectors.groupingBy(TrunklineCarsLoadScanEntity::getScanCode)); + collect1.keySet().forEach(scanCode -> { + List list = collect1.get(scanCode); + if(CollUtil.isNotEmpty(list) && list.size() > 1){ + for (int j = 0; j < list.size(); j++) { + if(j != 0){ + TrunklineCarsLoadScanEntity carsLoadScanEntity = list.get(j); + Long scanEntityId = carsLoadScanEntity.getId(); + scanloadIdList.add(scanEntityId); + } + } + } + }); + }); + + carsLoadScanClient.removeLoadScanByIds(scanloadIdList); + + carsLoadClient.updateCardLoadNum(loadId); + + + + } + + + log.info("############dealDubelCarUnloadData: 处理车次重复卸车数据 完成"); + + return ReturnT.SUCCESS; + } + + } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineCarsLoadClient.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineCarsLoadClient.java index 525fcd028..f71a5857d 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineCarsLoadClient.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineCarsLoadClient.java @@ -25,4 +25,9 @@ public class TrunklineCarsLoadClient implements ITrunklineCarsLoadClient{ public TrunklineCarsLoadEntity findEntityByLoadId(Long loadId) { return carsLoadService.getById(loadId); } + + @Override + public void updateCardLoadNum(Long loadId) { + carsLoadService.updateCardLoadNum(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 11a254d67..40c57ddf5 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 @@ -9,6 +9,8 @@ import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; +import java.util.List; + @Slf4j @ApiIgnore() @RestController @@ -43,4 +45,14 @@ public class TrunklineCarsLoadScanClient implements ITrunklineCarsLoadScanClient public void updateEntity(TrunklineCarsLoadScanEntity carsLoadScanEntity) { trunklineCarsLoadScanService.updateById(carsLoadScanEntity); } + + @Override + public List findAllListByLoadId(Long loadId) { + return trunklineCarsLoadScanService.findListByLoadId(loadId); + } + + @Override + public void removeLoadScanByIds(List scanloadIdList) { + trunklineCarsLoadScanService.deleteListByCarsLoadScanIds(scanloadIdList); + } } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java index e774ffddb..8e44ba85d 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java @@ -246,4 +246,6 @@ public interface ITrunklineCarsLoadService extends BaseService neloadScanQueryWrapper = new QueryWrapper<>(); + neloadScanQueryWrapper.eq("load_id", loadId) + .eq("scan_code", orderPackageCode) + .ne("scan_status", "1"); + TrunklineCarsLoadScanEntity scanEntity = trunklineCarsLoadScanService.getOne(neloadScanQueryWrapper); + + if (!Objects.isNull(scanEntity)) { + log.warn("##############unloadPackage: 包件已卸车 orderPackageCode={} warehouseId={}", orderPackageCode, warehouseId); + return R.fail(405, "包件已卸车"); + } + + //先判断包件是否在配载计划的装车扫描中 QueryWrapper loadScanQueryWrapper = new QueryWrapper<>(); loadScanQueryWrapper.eq("load_id", loadId)