diff --git a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataPriceCategoryWarehouseEntity.java b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataPriceCategoryWarehouseEntity.java index d4002783b..eb171e3ef 100644 --- a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataPriceCategoryWarehouseEntity.java +++ b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataPriceCategoryWarehouseEntity.java @@ -60,8 +60,10 @@ public class BasicdataPriceCategoryWarehouseEntity extends TenantEntity { private Double withinThirtyPrice; @ApiModelProperty(value = "30-60天") private Double betweenThirtySixtyPrice; - @ApiModelProperty(value = "60天外") + @ApiModelProperty(value = "60-90天外") private Double beyondSixtyPrice; + @ApiModelProperty(value = "90天外") + private Double beyondNinetyPrice; @ApiModelProperty(value = "上限价格") private Double maximumPrice; @ApiModelProperty(value = "操作/装卸费") diff --git a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/vo/PriceWarehouseBasicVO.java b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/vo/PriceWarehouseBasicVO.java index baccf6292..a360b415e 100644 --- a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/vo/PriceWarehouseBasicVO.java +++ b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/vo/PriceWarehouseBasicVO.java @@ -38,8 +38,10 @@ public class PriceWarehouseBasicVO implements Serializable { private Double withinThirtyPrice; @ApiModelProperty(value = "30-60天") private Double betweenThirtySixtyPrice; - @ApiModelProperty(value = "60天外") + @ApiModelProperty(value = "60-90天") private Double beyondSixtyPrice; + @ApiModelProperty(value = "90天外") + private Double beyondNinetyPrice; @ApiModelProperty(value = "上限价格") private Double maximumPrice; diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/aspect/JobAnnotationAspect.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/aspect/JobAnnotationAspect.java index 609decb6e..4a49f3c0f 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/aspect/JobAnnotationAspect.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/aspect/JobAnnotationAspect.java @@ -8,12 +8,11 @@ import lombok.AllArgsConstructor; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.reflect.MethodSignature; -import org.springblade.common.annotations.LogpmAsync; import org.springblade.common.cache.CacheNames; import org.springblade.common.constant.LauncherConstant; import org.springblade.core.redis.cache.BladeRedis; -import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.redis.lock.LockType; +import org.springblade.core.redis.lock.RedisLockClient; import org.springblade.core.tool.utils.ThreadLocalUtil; import org.springframework.core.env.Environment; import org.springframework.http.HttpHeaders; @@ -22,10 +21,10 @@ import org.springframework.stereotype.Component; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; -import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; import java.util.Objects; +import java.util.concurrent.TimeUnit; @Aspect @Component @@ -33,6 +32,7 @@ import java.util.Objects; public class JobAnnotationAspect { private final BladeRedis bladeRedis; private final Environment environment; + private final RedisLockClient redisLockClient; @Around("@annotation(com.xxl.job.core.handler.annotation.XxlJob)") public Object xxlJobAnnotationMethods(ProceedingJoinPoint joinPoint) throws Throwable { @@ -59,25 +59,32 @@ public class JobAnnotationAspect { } - private JSONObject mockLogin(){ + private JSONObject mockLogin() throws InterruptedException { String account ="shujutongbu"; JSONObject data =bladeRedis.get(CacheNames.LOCAL_SERVER_USER+account); if(Objects.isNull(data)){ - String url = "http://"+ LauncherConstant.loginAddr(Objects.requireNonNull(environment.getActiveProfiles()[0]))+"/blade-auth/oauth/token"; - HttpRequest urlRequest = HttpRequest.post(url); - urlRequest.header("Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0"); - urlRequest.header("Tenant-Id", "627683"); - - Map params = new HashMap<>(); - params.put("grant_type", "local_server"); - params.put("scope", "all"); - params.put("username", account); - params.put("tenantId", "627683"); - HttpResponse execute = urlRequest.form(params).execute(); - String body = execute.body(); - data = JSONObject.parseObject(body); - bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER+account,data,3200L); + boolean flag = redisLockClient.tryLock("local_server_user", LockType.FAIR, 5000, 10000, TimeUnit.MILLISECONDS); + if(flag){ + data =bladeRedis.get(CacheNames.LOCAL_SERVER_USER+account); + if(Objects.isNull(data)){ + String url = "http://"+ LauncherConstant.loginAddr(Objects.requireNonNull(environment.getActiveProfiles()[0]))+"/blade-auth/oauth/token"; + HttpRequest urlRequest = HttpRequest.post(url); + urlRequest.header("Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0"); + urlRequest.header("Tenant-Id", "627683"); + + Map params = new HashMap<>(); + params.put("grant_type", "local_server"); + params.put("scope", "all"); + params.put("username", account); + params.put("tenantId", "627683"); + HttpResponse execute = urlRequest.form(params).execute(); + String body = execute.body(); + data = JSONObject.parseObject(body); + bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER+account,data,20L); + redisLockClient.unLock("local_server_user", LockType.FAIR); + } + } } return data; } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.xml b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.xml index a1671ff64..48dab7273 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.xml +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.xml @@ -57,11 +57,12 @@ lawo.work_order_type, lawo.discovery_node, lawo.work_order_number, - lawo.waybill_number, + laap.waybill_number, lawo.order_code, lawo.train_number, - lawo.FIRST, - lawo.secondary, + GROUP_CONCAT(laap.`first` separator ',') as `first`, + GROUP_CONCAT(laap.secondary separator ',') as secondary, + group_concat( DISTINCT laap.brand_name SEPARATOR ',' ) AS brandName, lawo.vehicle_route, lawo.deliver_goods_time, lawo.discovery_time, @@ -84,7 +85,6 @@ lawo.process_number, lawo.customer_service_name customerServiceName, lawo.warehouse_id warehouseId, - lawo.brand_name brandName, lawo.customer_service_id customerServiceId FROM logpm_aftersales_work_order lawo @@ -93,6 +93,7 @@ AND lap.conditions IN ( 1, 2 ) LEFT JOIN logpm_aftersales_completion_record lacr ON lacr.work_order_id = lawo.id AND lacr.is_deleted = '0' + left join logpm_aftersales_abnormal_package laap on lawo.id = laap.work_order_id lawo.is_deleted = 0 and lawo.work_order_status = #{param.workOrderStatusNameS } @@ -156,9 +157,10 @@ and lawo.vehicle_route like concat('%', #{param.vehicleRoute },'%') and lawo.work_order_status in ( #{param.workOrderStatus }) and lawo.work_order_status in ('10') - ORDER BY lawo.create_time DESC - + + group by lawo.id + ORDER BY lawo.create_time DESC diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/aspect/JobAnnotationAspect.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/aspect/JobAnnotationAspect.java index 9409e560c..64825908c 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/aspect/JobAnnotationAspect.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/aspect/JobAnnotationAspect.java @@ -11,6 +11,8 @@ import org.aspectj.lang.annotation.Aspect; import org.springblade.common.cache.CacheNames; import org.springblade.common.constant.LauncherConstant; import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.redis.lock.LockType; +import org.springblade.core.redis.lock.RedisLockClient; import org.springblade.core.tool.utils.ThreadLocalUtil; import org.springframework.core.env.Environment; import org.springframework.http.HttpHeaders; @@ -22,6 +24,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import java.util.HashMap; import java.util.Map; import java.util.Objects; +import java.util.concurrent.TimeUnit; @Aspect @Component @@ -29,6 +32,7 @@ import java.util.Objects; public class JobAnnotationAspect { private final BladeRedis bladeRedis; private final Environment environment; + private final RedisLockClient redisLockClient; @Around("@annotation(com.xxl.job.core.handler.annotation.XxlJob)") public Object xxlJobAnnotationMethods(ProceedingJoinPoint joinPoint) throws Throwable { @@ -55,25 +59,32 @@ public class JobAnnotationAspect { } - private JSONObject mockLogin(){ + private JSONObject mockLogin() throws InterruptedException { String account ="shujutongbu"; JSONObject data =bladeRedis.get(CacheNames.LOCAL_SERVER_USER+account); if(Objects.isNull(data)){ - String url = "http://"+ LauncherConstant.loginAddr(Objects.requireNonNull(environment.getActiveProfiles()[0]))+"/blade-auth/oauth/token"; - HttpRequest urlRequest = HttpRequest.post(url); - urlRequest.header("Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0"); - urlRequest.header("Tenant-Id", "627683"); - - Map params = new HashMap<>(); - params.put("grant_type", "local_server"); - params.put("scope", "all"); - params.put("username", account); - params.put("tenantId", "627683"); - HttpResponse execute = urlRequest.form(params).execute(); - String body = execute.body(); - data = JSONObject.parseObject(body); - bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER+account,data,3200L); + boolean flag = redisLockClient.tryLock("local_server_user", LockType.FAIR, 5000, 10000, TimeUnit.MILLISECONDS); + if(flag){ + data =bladeRedis.get(CacheNames.LOCAL_SERVER_USER+account); + if(Objects.isNull(data)){ + String url = "http://"+ LauncherConstant.loginAddr(Objects.requireNonNull(environment.getActiveProfiles()[0]))+"/blade-auth/oauth/token"; + HttpRequest urlRequest = HttpRequest.post(url); + urlRequest.header("Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0"); + urlRequest.header("Tenant-Id", "627683"); + + Map params = new HashMap<>(); + params.put("grant_type", "local_server"); + params.put("scope", "all"); + params.put("username", account); + params.put("tenantId", "627683"); + HttpResponse execute = urlRequest.form(params).execute(); + String body = execute.body(); + data = JSONObject.parseObject(body); + bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER+account,data,20L); + redisLockClient.unLock("local_server_user", LockType.FAIR); + } + } } return data; } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java index 901c0ed20..1c92c0d2d 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionStockupAppController.java @@ -1461,14 +1461,16 @@ public class DistributionStockupAppController extends BladeController { String audioValue = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.saomiaochenggong.getValue()); //进行备货库位上架 - JSONObject jsonObject = new JSONObject(); - jsonObject.put("warehouseId", myCurrentWarehouse.getId()); - jsonObject.put("code",packetBarCode); -// jsonObject.put("stockUpAllocationId", stockupDTO.getStockupAllocationId()); - jsonObject.put("type", 2); - jsonObject.put("num", 1); - //TODO -// warehouseUpdownStockUpAreaClient.upStockUpShelf(jsonObject); +// if (!Func.isEmpty(stockupDTO.getStockupAllocationId())){ +// JSONObject jsonObject = new JSONObject(); +// jsonObject.put("warehouseId", myCurrentWarehouse.getId()); +// jsonObject.put("code",packetBarCode); +// jsonObject.put("stockUpAllocationId", stockupDTO.getStockupAllocationId()); +// jsonObject.put("type", 2); +// jsonObject.put("num", 1); +// warehouseUpdownStockUpAreaClient.upStockUpShelf(jsonObject); +// } + //扫码成功 return Resp.scanSuccess(PdaAudioLingoStatus.saomiaochenggong.getName(), audioValue); case 2: @@ -1589,12 +1591,6 @@ public class DistributionStockupAppController extends BladeController { entity.setBillLadingId(reservationId); DistributionStockupEntity byId = distributionStockupService.getById(stockupId); entity.setStockupArea(byId.getStockupArea()); - - //修改包件备货状态 -// one.setOrderPackageStockupStatus(StockupStatusConstant.yibeihuo.getValue()); - //todo 待下架操作 -// warehouseUpdownTypeClient.downPackage(stockupDTO.getPacketBarCode()); -// distributionParcelListService.updateById(one); } else { entity.setReservationId(reservationId); } @@ -1654,15 +1650,16 @@ public class DistributionStockupAppController extends BladeController { }); //查询是否货位数据是否该下架 - JSONObject jsonObject = new JSONObject(); - jsonObject.put("warehouseId", myCurrentWarehouse.getId()); - jsonObject.put("code",packetBarCode); -// jsonObject.put("stockUpAllocationId", stockupDTO.getStockupAllocationId()); - jsonObject.put("type", 2); - jsonObject.put("num", 1); - //进行了备货库位的选择才进行备货库位的上架 - //TODO -// warehouseUpdownStockUpAreaClient.upStockUpShelf(jsonObject); +// if (!Func.isEmpty(stockupDTO.getStockupAllocationId())){ +// JSONObject jsonObject = new JSONObject(); +// jsonObject.put("warehouseId", myCurrentWarehouse.getId()); +// jsonObject.put("code",packetBarCode); +// jsonObject.put("stockUpAllocationId", stockupDTO.getStockupAllocationId()); +// jsonObject.put("type", 1); +// jsonObject.put("num", 1); +// //进行了备货库位的选择才进行备货库位的上架 +// warehouseUpdownStockUpAreaClient.upStockUpShelf(jsonObject); +// } //修改包件备货状态 DistributionParcelListEntity parcelListEntity = new DistributionParcelListEntity(); parcelListEntity.setId(entity.getParcelListId()); diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockupDTO.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockupDTO.java index 6d3de9076..47659be92 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockupDTO.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockupDTO.java @@ -14,7 +14,7 @@ public class StockupDTO implements Serializable { private Integer status;//0未完成 1已完成 // private Long stockupAllocationId;//0未完成 1已完成 -// private String stockupAllocationName;//0未完成 1已完成 + private String stockupAllocationName;//0未完成 1已完成 /** * 客户名城 diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockupZeroDTO.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockupZeroDTO.java index cc4dbfc37..836306525 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockupZeroDTO.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockupZeroDTO.java @@ -22,7 +22,7 @@ public class StockupZeroDTO implements Serializable { private String typeService;//备货类型 3 自提 private Long reservationId;//预约单id private Integer num;//预约单id - private Long stockupAllocationId;//备货库位Id +// private Long stockupAllocationId;//备货库位Id private String stockupAllocationName;//备货库位Id } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml index 8d5ec4e8d..54299a035 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml @@ -832,7 +832,7 @@ IFNULL(SUM(ldbls.quantity),0) AS actual_plan, IFNULL(SUM(ldbls.quantity),0) AS delivery, IFNULL(SUM(ldbls.quantity),0) AS sign, - (SELECT GROUP_CONCAT(site) FROM logpm_distribution_print WHERE bill_lading_id = ldbl.id GROUP BY bill_lading_id) + (SELECT GROUP_CONCAT(site) FROM logpm_distribution_print WHERE bill_lading_id = ldbl.id GROUP BY bill_lading_id) AS image FROM logpm_distrilbution_bill_lading AS ldbl LEFT JOIN logpm_distribution_bill_lading_scan AS ldbls ON ldbls.bill_lading_id = ldbl.id AND ldbls.is_deleted = 0 diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java index 9c704d1c3..84c3cb600 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java @@ -595,20 +595,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl abnormalEntities = distributionLoadscanAbnormalService.list(Wrappers.query().lambda() - .eq(DistributionLoadscanAbnormalEntity::getPackageCode, distrilbutionloadingscanDTO.getBarcode()) - ); - if (!abnormalEntities.isEmpty()) { - //判断异常是否属于自身 - boolean flag = abnormalEntities.stream().allMatch(a -> !distributionDeliveryListEntity.getId().equals(a.getDeliveryListId()) || !distrilbutionloadingscanDTO.getReservationId().equals(a.getReservationId())); - if (flag){ - //该异常属于其他车次 - String collect = abnormalEntities.stream().map(DistributionLoadscanAbnormalEntity::getTrainNumber).collect(Collectors.joining(",")); - log.info("包件已在其他车次存在异常 >>>>当前车次:{},其他车次:{}",distributionDeliveryListEntity.getTrainNumber(),collect); - return Resp.scanFail("包件已在其他车次存在异常", "包件已在其他车次存在异常"); - } - } //异步确认包条扫描信息 // distributionAsyncService.changeOrderSignforStatus(distrilbutionloadingscanDTO.getBarcode()); List packageLockIds = new ArrayList<>(); @@ -657,6 +644,22 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl abnormalEntities = distributionLoadscanAbnormalService.list(Wrappers.query().lambda() + .eq(DistributionLoadscanAbnormalEntity::getPackageCode, distrilbutionloadingscanDTO.getBarcode()) + .eq(DistributionLoadscanAbnormalEntity::getPackageId, parcelList.getId()) + ); + + if (!abnormalEntities.isEmpty()) { + //判断异常是否属于自身 + boolean flag = abnormalEntities.stream().allMatch(a -> !distributionDeliveryListEntity.getId().equals(a.getDeliveryListId()) || !distrilbutionloadingscanDTO.getReservationId().equals(a.getReservationId())); + if (flag){ + //该异常属于其他车次 + String collect = abnormalEntities.stream().map(DistributionLoadscanAbnormalEntity::getTrainNumber).collect(Collectors.joining(",")); + log.info("包件已在其他车次存在异常 >>>>当前车次:{},其他车次:{}",distributionDeliveryListEntity.getTrainNumber(),collect); + return Resp.scanFail("包件已在其他车次存在异常", "包件已在其他车次存在异常"); + } + } + @@ -912,7 +915,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl>>>>>>>>>>>>>>>>>>>>>jsonObjects:{}",jsonObjects); //TODO -// warehouseUpdownStockUpAreaClient.downStockUpShelf(jsonObjects); + warehouseUpdownStockUpAreaClient.downStockUpShelf(jsonObjects); //查询已装车件数 // String str = getLoadingMsg(distrilbutionloadingscanDTO); @@ -2132,8 +2135,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl abnormalEntities = distributionLoadscanAbnormalService.list(Wrappers.query().lambda() - .eq(DistributionLoadscanAbnormalEntity::getPackageCode, distrilbutionloadingscanDTO.getBarcode()) -// .eq(DistributionLoadscanAbnormalEntity::getAuditingStatus, 1) - //修改 状态 - ); - if (!abnormalEntities.isEmpty()) { - //判断此包件的异常是否是当前扫描车次和客户 - //首先判断存在异常是否不属于当前车次和客户 - boolean flag = abnormalEntities.stream().allMatch(a -> !deliveryListEntity.getId().equals(a.getDeliveryListId()) || !distrilbutionloadingscanDTO.getReservationId().equals(a.getReservationId())); - if (flag){ - //该异常属于其他车次 - String collect = abnormalEntities.stream().map(DistributionLoadscanAbnormalEntity::getTrainNumber).collect(Collectors.joining(",")); - log.info("包件已在其他车次存在异常 >>>>当前车次:{},其他车次:{}",deliveryListEntity.getTrainNumber(),collect); - return Resp.scanFail("包件已在其他车次存在异常", "包件已在其他车次存在异常"); - } - //判断具体的装车信息 - - -// boolean flag = abnormalEntities.stream().filter(f->f.getAuditingStatus() == 1).allMatch(a -> deliveryListEntity.getId().equals(a.getDeliveryListId()) && distrilbutionloadingscanDTO.getReservationId().equals(a.getReservationId())); -// if (flag){ -// //存在异常 进行异常签收还是异常装车区分 -// return Resp.scanFail("包件已存在异常", "包件已存在异常"); -// } -// String collect = abnormalEntities.stream().map(DistributionLoadscanAbnormalEntity::getTrainNumber).collect(Collectors.joining(",")); -// log.info("包件已在其他车次存在异常 >>>>当前车次:{},其他车次:{}",deliveryListEntity.getTrainNumber(),collect); -// return Resp.scanFail("包件已在其他车次存在异常", "包件已在其他车次存在异常"); - } if (Func.isNotEmpty(list)) { //满足条件此码必定为库存品 //判断该库存品是否属于当前客户 @@ -2466,6 +2437,25 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl collect = parcelListEntityList.stream().filter(p -> p.getOrderPackageCode().equals(distrilbutionloadingscanDTO.getBarcode())).collect(Collectors.toList()); if (Func.isNotEmpty(collect) && collect.size() == 1) { + List abnormalEntities = distributionLoadscanAbnormalService.list(Wrappers.query().lambda() + .eq(DistributionLoadscanAbnormalEntity::getPackageCode, distrilbutionloadingscanDTO.getBarcode()) + .eq(DistributionLoadscanAbnormalEntity::getPackageId, collect.get(0).getId()) + //修改 状态 + ); + if (!abnormalEntities.isEmpty()) { + //判断此包件的异常是否是当前扫描车次和客户 + //首先判断存在异常是否不属于当前车次和客户 + boolean flag = abnormalEntities.stream().allMatch(a -> !deliveryListEntity.getId().equals(a.getDeliveryListId()) || !distrilbutionloadingscanDTO.getReservationId().equals(a.getReservationId())); + if (flag){ + //该异常属于其他车次 + String info = abnormalEntities.stream().map(DistributionLoadscanAbnormalEntity::getTrainNumber).collect(Collectors.joining(",")); + log.info("包件已在其他车次存在异常 >>>>当前车次:{},其他车次:{}",deliveryListEntity.getTrainNumber(),info); + return Resp.scanFail("包件已在其他车次存在异常", "包件已在其他车次存在异常"); + } + //判断具体的装车信息 + } + + //存在则查询该包件是否进行装车 DistributionLoadscanEntity loadscanEntity = distributionLoadscanMapper.selectOne(Wrappers.query().lambda() .ne(DistributionLoadscanEntity::getScanStatus, 1) @@ -2589,8 +2579,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl jsonObjects = new ArrayList<>(); for (DistributionParcelNumberDTO parcelNumberDTO : parcelNumberDTOS) { List zeroPackageEntities = reservationMap.get(parcelNumberDTO.getParcelListId()); DistributionParcelNumberEntity distributionParcelNumberEntity = distributionParcelNumberService.getOne(Wrappers.query().lambda() @@ -5820,10 +5812,12 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl distributionReservationZeroPackageEntity.getQuantity()) { log.info("#############零担签收超过计划数量ParcelListId:{},计划:{}录入,:{}", parcelNumberDTO.getParcelListId(), distributionReservationZeroPackageEntity.getQuantity(), parcelNumberDTO.getSigningNum()); } + int a = 0; if (distributionLoadscanEntity.getLoadedNub() < parcelNumberDTO.getSigningNum()) { //将装车和签收进行统一数量 distributionLoadscanEntity.setLoadedNub(parcelNumberDTO.getSigningNum()); distributionLoadscanEntity.setPackageNub(parcelNumberDTO.getSigningNum()); + a = parcelNumberDTO.getSigningNum() - distributionLoadscanEntity.getLoadedNub(); } deliveryNumber = distributionParcelNumberEntity.getDeliveryQuantity() + distributionLoadscanEntity.getReceivedQuantity() - parcelNumberDTO.getSigningNum(); @@ -5843,6 +5837,14 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl jsonObjects = new ArrayList<>(); JSONObject jsonObject = new JSONObject(); jsonObject.put("code",parcelListEntity.getOrderCode()); jsonObject.put("warehouseId",myCurrentWarehouse.getId()); jsonObject.put("taskId",loadscanEntity.getReservationId()); jsonObject.put("type",3); - jsonObject.put("num",1); + jsonObject.put("num",loadscanEntity.getLoadedNub()); jsonObject.put("remark","签收下架"); jsonObjects.add(jsonObject); - //TODO -// warehouseUpdownStockUpAreaClient.downStockUpShelf(jsonObjects); + warehouseUpdownStockUpAreaClient.downStockUpShelf(jsonObjects); } //维护订单 if (outboundQuantity.equals(distributionParcelNumberEntity.getQuantity())) { @@ -5914,7 +5914,6 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl params = new HashMap<>(); - params.put("grant_type", "local_server"); - params.put("scope", "all"); - params.put("username", account); - params.put("tenantId", "627683"); - HttpResponse execute = urlRequest.form(params).execute(); - String body = execute.body(); - data = JSONObject.parseObject(body); - bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER+account,data,3200L); + boolean flag = redisLockClient.tryLock("local_server_user", LockType.FAIR, 5000, 10000, TimeUnit.MILLISECONDS); + if(flag){ + data =bladeRedis.get(CacheNames.LOCAL_SERVER_USER+account); + if(Objects.isNull(data)){ + String url = "http://"+ LauncherConstant.loginAddr(Objects.requireNonNull(environment.getActiveProfiles()[0]))+"/blade-auth/oauth/token"; + HttpRequest urlRequest = HttpRequest.post(url); + urlRequest.header("Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0"); + urlRequest.header("Tenant-Id", "627683"); + + Map params = new HashMap<>(); + params.put("grant_type", "local_server"); + params.put("scope", "all"); + params.put("username", account); + params.put("tenantId", "627683"); + HttpResponse execute = urlRequest.form(params).execute(); + String body = execute.body(); + data = JSONObject.parseObject(body); + bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER+account,data,20L); + redisLockClient.unLock("local_server_user", LockType.FAIR); + } + } } return data; } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/aspect/JobAnnotationAspect.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/aspect/JobAnnotationAspect.java index e90fe3e7e..731bdc02e 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/aspect/JobAnnotationAspect.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/aspect/JobAnnotationAspect.java @@ -11,6 +11,8 @@ import org.aspectj.lang.annotation.Aspect; import org.springblade.common.cache.CacheNames; import org.springblade.common.constant.LauncherConstant; import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.redis.lock.LockType; +import org.springblade.core.redis.lock.RedisLockClient; import org.springblade.core.tool.utils.ThreadLocalUtil; import org.springframework.core.env.Environment; import org.springframework.http.HttpHeaders; @@ -22,6 +24,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import java.util.HashMap; import java.util.Map; import java.util.Objects; +import java.util.concurrent.TimeUnit; @Aspect @Component @@ -29,6 +32,7 @@ import java.util.Objects; public class JobAnnotationAspect { private final BladeRedis bladeRedis; private final Environment environment; + private final RedisLockClient redisLockClient; @Around("@annotation(com.xxl.job.core.handler.annotation.XxlJob)") public Object xxlJobAnnotationMethods(ProceedingJoinPoint joinPoint) throws Throwable { @@ -55,25 +59,32 @@ public class JobAnnotationAspect { } - private JSONObject mockLogin(){ + private JSONObject mockLogin() throws InterruptedException { String account ="shujutongbu"; JSONObject data =bladeRedis.get(CacheNames.LOCAL_SERVER_USER+account); if(Objects.isNull(data)){ - String url = "http://"+ LauncherConstant.loginAddr(Objects.requireNonNull(environment.getActiveProfiles()[0]))+"/blade-auth/oauth/token"; - HttpRequest urlRequest = HttpRequest.post(url); - urlRequest.header("Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0"); - urlRequest.header("Tenant-Id", "627683"); - - Map params = new HashMap<>(); - params.put("grant_type", "local_server"); - params.put("scope", "all"); - params.put("username", account); - params.put("tenantId", "627683"); - HttpResponse execute = urlRequest.form(params).execute(); - String body = execute.body(); - data = JSONObject.parseObject(body); - bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER+account,data,3200L); + boolean flag = redisLockClient.tryLock("local_server_user", LockType.FAIR, 5000, 10000, TimeUnit.MILLISECONDS); + if(flag){ + data =bladeRedis.get(CacheNames.LOCAL_SERVER_USER+account); + if(Objects.isNull(data)){ + String url = "http://"+ LauncherConstant.loginAddr(Objects.requireNonNull(environment.getActiveProfiles()[0]))+"/blade-auth/oauth/token"; + HttpRequest urlRequest = HttpRequest.post(url); + urlRequest.header("Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0"); + urlRequest.header("Tenant-Id", "627683"); + + Map params = new HashMap<>(); + params.put("grant_type", "local_server"); + params.put("scope", "all"); + params.put("username", account); + params.put("tenantId", "627683"); + HttpResponse execute = urlRequest.form(params).execute(); + String body = execute.body(); + data = JSONObject.parseObject(body); + bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER+account,data,20L); + redisLockClient.unLock("local_server_user", LockType.FAIR); + } + } } return data; } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/config/InterceptorAdapterConfig.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/config/InterceptorAdapterConfig.java index d16d65a3b..190350ed0 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/config/InterceptorAdapterConfig.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/config/InterceptorAdapterConfig.java @@ -7,9 +7,9 @@ import com.logpm.factory.interceptor.ZbFactoryAccountsInterceptor; import com.logpm.factory.props.ZbFactoryProperties; import lombok.AllArgsConstructor; import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.redis.lock.RedisLockClient; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; -import org.springframework.web.servlet.config.annotation.InterceptorRegistration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @@ -25,6 +25,8 @@ public class InterceptorAdapterConfig implements WebMvcConfigurer { private final Environment environment; + private final RedisLockClient redisLockClient; + @Override public void addInterceptors(InterceptorRegistry interceptorRegistry) { @@ -36,7 +38,7 @@ public class InterceptorAdapterConfig implements WebMvcConfigurer { .excludePathPatterns("/factory/common/**").order(2); interceptorRegistry.addInterceptor(new ZbFactoryAccountsInterceptor(zbFactoryProperties)) .addPathPatterns("/factory/zb/**").order(3); - interceptorRegistry.addInterceptor(new LocalServerLoginAccountsInterceptor(redis,environment)).addPathPatterns("/**").order(1); + interceptorRegistry.addInterceptor(new LocalServerLoginAccountsInterceptor(redis,environment,redisLockClient)).addPathPatterns("/**").order(1); } } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/interceptor/LocalServerLoginAccountsInterceptor.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/interceptor/LocalServerLoginAccountsInterceptor.java index a33a25e80..9fdfd6a3e 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/interceptor/LocalServerLoginAccountsInterceptor.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/interceptor/LocalServerLoginAccountsInterceptor.java @@ -3,13 +3,15 @@ package com.logpm.factory.interceptor; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; -import org.springblade.common.wrapper.CustomHttpServletRequestWrapper; import lombok.AllArgsConstructor; import lombok.extern.log4j.Log4j2; import org.springblade.common.cache.CacheNames; import org.springblade.common.constant.LauncherConstant; import org.springblade.common.exception.CustomerException; +import org.springblade.common.wrapper.CustomHttpServletRequestWrapper; import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.redis.lock.LockType; +import org.springblade.core.redis.lock.RedisLockClient; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.ThreadLocalUtil; import org.springframework.core.env.Environment; @@ -25,6 +27,7 @@ import java.io.PrintWriter; import java.util.HashMap; import java.util.Map; import java.util.Objects; +import java.util.concurrent.TimeUnit; @Log4j2 @AllArgsConstructor @@ -32,6 +35,8 @@ public class LocalServerLoginAccountsInterceptor extends HandlerInterceptorAdapt private final BladeRedis bladeRedis; private final Environment environment; + private final RedisLockClient redisLockClient; + @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws CustomerException { @@ -41,20 +46,27 @@ public class LocalServerLoginAccountsInterceptor extends HandlerInterceptorAdapt String account ="shujutongbu"; JSONObject data =bladeRedis.get(CacheNames.LOCAL_SERVER_USER+account); if(Objects.isNull(data)){ - String url = "http://"+ LauncherConstant.loginAddr(Objects.requireNonNull(environment.getActiveProfiles()[0]))+"/blade-auth/oauth/token"; - cn.hutool.http.HttpRequest urlRequest = HttpRequest.post(url); - urlRequest.header("Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0"); - urlRequest.header("Tenant-Id", "627683"); - - Map params = new HashMap<>(); - params.put("grant_type", "local_server"); - params.put("scope", "all"); - params.put("username", account); - params.put("tenantId", "627683"); - HttpResponse execute = urlRequest.form(params).execute(); - String body = execute.body(); - data = JSONObject.parseObject(body); - bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER+account,data,3200L); + boolean flag = redisLockClient.tryLock("local_server_user", LockType.FAIR, 5000, 10000, TimeUnit.MILLISECONDS); + if(flag){ + data =bladeRedis.get(CacheNames.LOCAL_SERVER_USER+account); + if(Objects.isNull(data)){ + String url = "http://"+ LauncherConstant.loginAddr(Objects.requireNonNull(environment.getActiveProfiles()[0]))+"/blade-auth/oauth/token"; + HttpRequest urlRequest = HttpRequest.post(url); + urlRequest.header("Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0"); + urlRequest.header("Tenant-Id", "627683"); + + Map params = new HashMap<>(); + params.put("grant_type", "local_server"); + params.put("scope", "all"); + params.put("username", account); + params.put("tenantId", "627683"); + HttpResponse execute = urlRequest.form(params).execute(); + String body = execute.body(); + data = JSONObject.parseObject(body); + bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER+account,data,20L); + redisLockClient.unLock("local_server_user", LockType.FAIR); + } + } } // 修改或添加header diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/aspect/JobAnnotationAspect.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/aspect/JobAnnotationAspect.java index 0e315907c..8005a9479 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/aspect/JobAnnotationAspect.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/aspect/JobAnnotationAspect.java @@ -11,6 +11,8 @@ import org.aspectj.lang.annotation.Aspect; import org.springblade.common.cache.CacheNames; import org.springblade.common.constant.LauncherConstant; import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.redis.lock.LockType; +import org.springblade.core.redis.lock.RedisLockClient; import org.springblade.core.tool.utils.ThreadLocalUtil; import org.springframework.core.env.Environment; import org.springframework.http.HttpHeaders; @@ -22,6 +24,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import java.util.HashMap; import java.util.Map; import java.util.Objects; +import java.util.concurrent.TimeUnit; @Aspect @Component @@ -29,6 +32,7 @@ import java.util.Objects; public class JobAnnotationAspect { private final BladeRedis bladeRedis; private final Environment environment; + private final RedisLockClient redisLockClient; @Around("@annotation(com.xxl.job.core.handler.annotation.XxlJob)") public Object xxlJobAnnotationMethods(ProceedingJoinPoint joinPoint) throws Throwable { @@ -55,25 +59,32 @@ public class JobAnnotationAspect { } - private JSONObject mockLogin(){ + private JSONObject mockLogin() throws InterruptedException { String account ="shujutongbu"; JSONObject data =bladeRedis.get(CacheNames.LOCAL_SERVER_USER+account); if(Objects.isNull(data)){ - String url = "http://"+ LauncherConstant.loginAddr(Objects.requireNonNull(environment.getActiveProfiles()[0]))+"/blade-auth/oauth/token"; - HttpRequest urlRequest = HttpRequest.post(url); - urlRequest.header("Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0"); - urlRequest.header("Tenant-Id", "627683"); - - Map params = new HashMap<>(); - params.put("grant_type", "local_server"); - params.put("scope", "all"); - params.put("username", account); - params.put("tenantId", "627683"); - HttpResponse execute = urlRequest.form(params).execute(); - String body = execute.body(); - data = JSONObject.parseObject(body); - bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER+account,data,3200L); + boolean flag = redisLockClient.tryLock("local_server_user", LockType.FAIR, 5000, 10000, TimeUnit.MILLISECONDS); + if(flag){ + data =bladeRedis.get(CacheNames.LOCAL_SERVER_USER+account); + if(Objects.isNull(data)){ + String url = "http://"+ LauncherConstant.loginAddr(Objects.requireNonNull(environment.getActiveProfiles()[0]))+"/blade-auth/oauth/token"; + HttpRequest urlRequest = HttpRequest.post(url); + urlRequest.header("Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0"); + urlRequest.header("Tenant-Id", "627683"); + + Map params = new HashMap<>(); + params.put("grant_type", "local_server"); + params.put("scope", "all"); + params.put("username", account); + params.put("tenantId", "627683"); + HttpResponse execute = urlRequest.form(params).execute(); + String body = execute.body(); + data = JSONObject.parseObject(body); + bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER+account,data,20L); + redisLockClient.unLock("local_server_user", LockType.FAIR); + } + } } return data; } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml index df9dc5c3b..2b4200dac 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml @@ -27,198 +27,194 @@ ss_num, unloading_team_name from (select - d.train_number train_number, - d.task_time task_time, - d.warehouse_name warehouse_name, - CASE - WHEN d.type = 1 THEN - '商配' - WHEN d.type = 2 THEN - '市配' - ELSE '' - END type, - CASE - WHEN d.kind = 1 THEN - '自主配送' - WHEN d.kind = 2 THEN - '自主配送' - ELSE '' - END kind, - d.vehicle_name vehicle_name, - d.driver_name driver_name, - d.distribution_company distribution_company, - CASE - WHEN d.delivery_status = 1 THEN - '待配送' - WHEN d.delivery_status = 2 THEN - '配送中' - WHEN d.delivery_status = 3 THEN - '已完成' - ELSE '' - END delivery_status, - d.customers_number customers_number, - d.price, - d.order_number order_number, - rn.num reservation_num, - rn.stnum reservation_stock_listNum, - IFNULL(loadScan.loadedNum, 0) loaded_num, - IFNULL(loadscaninvn.loadedNum, 0) invn_loaded_num, - IFNULL(loadScan.exLoadedNum, 0) ex_loaded_num, - IFNULL(loadScan.reNum, 0) re_num, - IFNULL(loadscaninvn.reNum, 0) invn_re_num, - IFNULL(loadScan.exReNum, 0) ex_reNum, - ifnull(rn.dsNum, 0) ds_num, - ifnull(rn.ssNum, 0) ss_num, - ifnull(d.unloading_team_name, '') unloading_team_name - from - logpm_distribution_delivery_list d - LEFT JOIN ( - SELECT lds.delivery_id, - COALESCE(sum(ldr1.reservation_num), 0) num, - COALESCE(sum(ldr1.reservation_stock_list_num), 0) stnum, - SUM(CASE - WHEN lds.driver_signing = 2 THEN - 1 - ELSE - 0 - END) dsNum, - SUM(CASE - WHEN lds.signing_status = 2 THEN - 1 - ELSE - 0 - END) ssNum - FROM logpm_distribution_signfor lds - JOIN logpm_distribution_reservation ldr1 ON lds.reservation_id = ldr1.id - WHERE ldr1.reservation_status != '40' - GROUP BY lds.delivery_id order by null - ) rn ON rn.delivery_id = d.id - left join (select t.delivery_id, - SUM(t.loaded_nub) loadedNum, - sum(t.received_quantity) reNum, - sum(if(t.is_abnormal_loading = 1, 0, 1)) exLoadedNum, - sum(if(t.is_abnormal_signing = 1, 0, 1)) exReNum - from logpm_distribution_loadscan t - where t.scan_status != 1 - group by t.delivery_id order by null) loadScan on loadScan.delivery_id = d.id - left join (select t.delivery_id, - SUM(t.loaded_nub) loadedNum, - sum(t.received_quantity) reNum - from logpm_distribution_loadscaninvn t - where t.scan_status != 1 - group by t.delivery_id order by null) loadscaninvn on loadscaninvn.delivery_id = d.id - where d.customers_number != 0) t + d.train_number train_number, + d.task_time task_time, + d.warehouse_name warehouse_name, + CASE + WHEN d.type = 1 THEN + '商配' + WHEN d.type = 2 THEN + '市配' + ELSE '' + END type, + CASE + WHEN d.kind = 1 THEN + '自主配送' + WHEN d.kind = 2 THEN + '自主配送' + ELSE '' + END kind, + d.vehicle_name vehicle_name, + d.driver_name driver_name, + d.distribution_company distribution_company, + CASE + WHEN d.delivery_status = 1 THEN + '待配送' + WHEN d.delivery_status = 2 THEN + '配送中' + WHEN d.delivery_status = 3 THEN + '已完成' + ELSE '' + END delivery_status, + d.customers_number customers_number, + d.price, + d.order_number order_number, + rn.num reservation_num, + rn.stnum reservation_stock_listNum, + IFNULL(loadScan.loadedNum, 0) loaded_num, + IFNULL(loadscaninvn.loadedNum, 0) invn_loaded_num, + IFNULL(loadScan.exLoadedNum, 0) ex_loaded_num, + IFNULL(loadScan.reNum, 0) re_num, + IFNULL(loadscaninvn.reNum, 0) invn_re_num, + IFNULL(loadScan.exReNum, 0) ex_reNum, + ifnull(rn.dsNum, 0) ds_num, + ifnull(rn.ssNum, 0) ss_num, + ifnull(d.unloading_team_name, '') unloading_team_name + from logpm_distribution_delivery_list d + LEFT JOIN (SELECT lds.delivery_id, + COALESCE(sum(ldr1.reservation_num), 0) num, + COALESCE(sum(ldr1.reservation_stock_list_num), 0) stnum, + SUM(CASE + WHEN lds.driver_signing = 2 THEN + 1 + ELSE + 0 + END) dsNum, + SUM(CASE + WHEN lds.signing_status = 2 THEN + 1 + ELSE + 0 + END) ssNum + FROM logpm_distribution_signfor lds + left JOIN logpm_distribution_reservation ldr1 ON lds.reservation_id = ldr1.id + WHERE ldr1.reservation_status '40' + GROUP BY lds.delivery_id + order by null) rn ON rn.delivery_id = d.id + left join (select t.delivery_id, + SUM(t.loaded_nub) loadedNum, + sum(t.received_quantity) reNum, + sum(if(t.is_abnormal_loading = 1, 0, 1)) exLoadedNum, + sum(if(t.is_abnormal_signing = 1, 0, 1)) exReNum + from logpm_distribution_loadscan t + where t.scan_status != 1 + group by t.delivery_id + order by null) loadScan on loadScan.delivery_id = d.id + left join (select t.delivery_id, + SUM(t.loaded_nub) loadedNum, + sum(t.received_quantity) reNum + from logpm_distribution_loadscaninvn t + where t.scan_status != 1 + group by t.delivery_id + order by null) loadscaninvn on loadscaninvn.delivery_id = d.id + where + d.customers_number > 0 + and rn.num > 0) t ${ew.customSqlSegment} select ltad.order_package_code from logpm_trunkline_advance_detail ltad - where exists( - select 1 from ( - - - select #{item} orderPackageCode - - - union all - select #{item} orderPackageCode - + where ltad.order_package_code in + + #{item} - ) orderPackageCodes where orderPackageCodes.orderPackageCode = ltad.order_package_code) 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 abc93ea47..80e714375 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 @@ -705,7 +705,7 @@ sum(IF(ltcls.unload_node_id = #{warehouseId} and ltcls.type = 2 and ltcls.scan_status = '1',ltcls.unload_num,0)) manualNum from logpm_trunkline_cars_load_scan ltcls left join logpm_trunkline_cars_order ltco on ltco.waybill_id = ltcls.waybill_id and ltco.order_code = ltcls.order_code and ltco.load_id = #{loadId} - where ltcls.load_id = + where ltcls.load_id = #{loadId}