From 9ef8103bfd34ffe95ec98b00535cc160cbbaa204 Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Tue, 15 Oct 2024 14:23:03 +0800 Subject: [PATCH 01/16] =?UTF-8?q?1.=E6=9A=82=E5=AD=98=E5=8D=95=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E6=96=B0=E5=A2=9E=E5=90=88=E5=8C=85=E7=A0=81=E9=80=BB?= =?UTF-8?q?=E8=BE=91=202.=E5=B1=8F=E8=94=BD=E8=A3=85=E8=BD=A6=20=20?= =?UTF-8?q?=E5=8F=91=E8=BD=A6=20=20=E9=9C=80=E8=A6=81=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E7=85=A7=E7=89=87=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/ImportCustomizedOuPaiDTO.java | 6 + .../trunkline/dto/ImportStandardOuPaiDTO.java | 12 + .../com/logpm/trunkline/dto/LoadCarsDTO.java | 5 + .../entity/TrunklineAdvanceMergeEntity.java | 41 ++ .../entity/TrunklineCarsLoadLineEntity.java | 12 + .../TrunklineCarsLoadLinePhotoEntity.java | 18 +- .../trunkline/vo/TrunklineCarsLoadVO.java | 4 + .../controller/CarsLoadController.java | 221 ++++++ .../mapper/TrunklineAdvanceMapper.xml | 18 +- .../mapper/TrunklineAdvanceMergeMapper.java | 9 + .../TrunklineCarsLoadLinePhotoMapper.java | 15 + .../TrunklineCarsLoadLinePhotoMapper.xml | 34 + .../mapper/TrunklineCarsLoadMapper.xml | 13 +- .../ITrunklineAdvanceMergeService.java | 7 + .../ITrunklineCarsLoadLinePhotoService.java | 12 + .../service/ITrunklineCarsLoadService.java | 14 + .../service/impl/OpenOrderServiceImpl.java | 69 ++ .../TrunklineAdvanceMergeServiceImpl.java | 16 + ...ineCarsLoadLinePhotoEntityServiceImpl.java | 28 + .../impl/TrunklineCarsLoadServiceImpl.java | 638 +++++++++++++++++- 20 files changed, 1171 insertions(+), 21 deletions(-) create mode 100644 blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineAdvanceMergeEntity.java create mode 100644 blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceMergeMapper.java create mode 100644 blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadLinePhotoMapper.java create mode 100644 blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadLinePhotoMapper.xml create mode 100644 blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceMergeService.java create mode 100644 blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadLinePhotoService.java create mode 100644 blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceMergeServiceImpl.java create mode 100644 blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadLinePhotoEntityServiceImpl.java diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/ImportCustomizedOuPaiDTO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/ImportCustomizedOuPaiDTO.java index a6472990a..779cba594 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/ImportCustomizedOuPaiDTO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/ImportCustomizedOuPaiDTO.java @@ -16,6 +16,10 @@ public class ImportCustomizedOuPaiDTO implements Serializable { private String dealerName; @ExcelProperty(value = "是否干仓配商场") private String isOupai; + @ExcelProperty(value = "门店编码") + private String storeCode; + @ExcelProperty(value = "门店名称") + private String storeName; @ExcelProperty(value = "省份") private String province; @ExcelProperty(value = "品类") @@ -30,6 +34,8 @@ public class ImportCustomizedOuPaiDTO implements Serializable { private String thirdsName; @ExcelProperty(value = "数量") private String num; + @ExcelProperty(value = "合包码") + private String mergeCode; @ExcelProperty(value = "订单自编号") private String orderCode; @ExcelProperty(value = "服务号") diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/ImportStandardOuPaiDTO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/ImportStandardOuPaiDTO.java index 956f8db8c..c6d878f3a 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/ImportStandardOuPaiDTO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/ImportStandardOuPaiDTO.java @@ -17,6 +17,9 @@ public class ImportStandardOuPaiDTO implements Serializable { @ExcelProperty(value = "二级品类名称") private String sencodsName; + @ExcelProperty(value = "小二级品类名称") + private String smallSencodsName; + @ExcelProperty(value = "三级品类名称") private String thirdsName; @@ -47,6 +50,9 @@ public class ImportStandardOuPaiDTO implements Serializable { @ExcelProperty(value = "包体积") private String volume; + @ExcelProperty(value = "合包码") + private String mergeCode; + @ExcelProperty(value = "车牌") private String carNumber; @@ -67,6 +73,12 @@ public class ImportStandardOuPaiDTO implements Serializable { @ExcelProperty(value = "是否干仓配") private String isOupai; + @ExcelProperty(value = "门店编码") + private String storeCode; + + @ExcelProperty(value = "门店名称") + private String storeName; + @ExcelProperty(value = "订单号") private String order; diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java index be000cf82..209185100 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/dto/LoadCarsDTO.java @@ -1,5 +1,6 @@ package com.logpm.trunkline.dto; +import com.logpm.trunkline.entity.TrunklineCarsLoadLinePhotoEntity; import com.logpm.trunkline.entity.TrunklineLoadSignPhotoEntity; import com.logpm.trunkline.vo.LoadScanFinalNodeIdVO; import com.logpm.trunkline.vo.ZeroOrderVO; @@ -184,4 +185,8 @@ public class LoadCarsDTO implements Serializable { private Date signTimeStart; private Date signTimeEnd; + + private List addUrlList = new ArrayList<>(); + private List removeUrlList = new ArrayList<>(); + } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineAdvanceMergeEntity.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineAdvanceMergeEntity.java new file mode 100644 index 000000000..dd91fd58a --- /dev/null +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineAdvanceMergeEntity.java @@ -0,0 +1,41 @@ +package com.logpm.trunkline.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +@Data +@TableName("logpm_trunkline_advance_merge") +@ApiModel(value = "TrunklineAdvanceMerge对象", description = "暂存单合包码数据表") +@EqualsAndHashCode(callSuper = true) +public class TrunklineAdvanceMergeEntity extends TenantEntity { + + /** 预留1 */ + @ApiModelProperty(name = "预留1",notes = "") + private String reserve1 ; + /** 预留2 */ + @ApiModelProperty(name = "预留2",notes = "") + private String reserve2 ; + /** 预留3 */ + @ApiModelProperty(name = "预留3",notes = "") + private String reserve3 ; + /** 预留4 */ + @ApiModelProperty(name = "预留4",notes = "") + private String reserve4 ; + /** 预留5 */ + @ApiModelProperty(name = "预留5",notes = "") + private String reserve5 ; + + @ApiModelProperty(name = "合包码",notes = "") + private String mergeCode ; + + @ApiModelProperty(name = "包条码",notes = "") + private String orderPackageCode ; + + @ApiModelProperty(name = "订单号",notes = "") + private String orderCode ; + +} diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineCarsLoadLineEntity.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineCarsLoadLineEntity.java index 47a235b7a..96c5434b8 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineCarsLoadLineEntity.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineCarsLoadLineEntity.java @@ -169,4 +169,16 @@ public class TrunklineCarsLoadLineEntity extends TenantEntity { @ApiModelProperty(name = "卸车报告第三段",notes = "") private String reportThree; + /** 是否有上传装车图片 */ + @ApiModelProperty(name = "是否有上传装车图片",notes = "") + private Integer isLoadingPhoto; + + /** 是否有上传发车图片 */ + @ApiModelProperty(name = "是否有上传发车图片",notes = "") + private Integer isStartPhoto; + + /** 是否有上传卸车图片 */ + @ApiModelProperty(name = "是否有上传卸车图片",notes = "") + private Integer isUnloadPhoto; + } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineCarsLoadLinePhotoEntity.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineCarsLoadLinePhotoEntity.java index 261da83a6..a984133b6 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineCarsLoadLinePhotoEntity.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/entity/TrunklineCarsLoadLinePhotoEntity.java @@ -35,10 +35,22 @@ public class TrunklineCarsLoadLinePhotoEntity extends TenantEntity{ /** 车辆配载节点id */ @ApiModelProperty(name = "车辆配载节点id",notes = "") - private Long loadNodeId ; + private Long loadLineId ; - /** 图片类型 1*/ - @ApiModelProperty(name = "图片类型",notes = "") + /** 车辆配载节点id */ + @ApiModelProperty(name = "仓库id",notes = "") + private Long warehouseId ; + + /** 图片类型 1装车 2发车 3卸车*/ + @ApiModelProperty(name = "图片类型 10装车 20发车 30卸车",notes = "") private Integer type ; + /** 位置 1*/ + @ApiModelProperty(name = "位置 1前 2后 3左 4右",notes = "") + private Integer position ; + + /** 图片类型 1*/ + @ApiModelProperty(name = "图片地址",notes = "") + private String url ; + } diff --git a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadVO.java b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadVO.java index 082215244..2249c2757 100644 --- a/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadVO.java +++ b/blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/vo/TrunklineCarsLoadVO.java @@ -54,4 +54,8 @@ public class TrunklineCarsLoadVO extends TrunklineCarsLoadEntity { private String loadCarsNo; private String unloadStatus; + private Integer isLoadingPhoto; + private Integer isStartPhoto; + private Integer isUnloadPhoto; + } 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 6e5fa91ba..94ed7dea5 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 @@ -2576,5 +2576,226 @@ public class CarsLoadController { } + @ResponseBody + @PostMapping("/uploadLoadingPhoto") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "上传装车前图片", notes = "传入loadCarsDTO") + public R uploadLoadingPhoto(@RequestBody LoadCarsDTO loadCarsDTO) { + String method = "############uploadLoadingPhoto: "; + log.info(method + "请求参数{}", loadCarsDTO); + Long loadId = loadCarsDTO.getLoadId(); + try{ + //当前登录人选择的仓库 + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if(Objects.isNull(myCurrentWarehouse)){ + log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse); + return R.fail(405,"多仓权限无法操作,请选择仓库"); + } + loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId()); + if(Objects.isNull(loadId)){ + log.warn(method+"配载id为空 loadId={}",loadId); + return R.fail(405,"配载id为空"); + } + + return carsLoadService.uploadLoadingPhoto(loadCarsDTO); + }catch (CustomerException e){ + log.error(e.message,e); + return R.fail(e.code,e.message); + }catch (Exception e){ + log.error(method+"系统异常",e); + return R.fail(500,"系统异常"); + } + } + + + @ResponseBody + @PostMapping("/findLoadingPhoto") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "查看装车前图片", notes = "传入loadCarsDTO") + public R findLoadingPhoto(@RequestBody LoadCarsDTO loadCarsDTO) { + String method = "############findLoadingPhoto: "; + log.info(method + "请求参数{}", loadCarsDTO); + Long loadId = loadCarsDTO.getLoadId(); + try{ + //当前登录人选择的仓库 + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if(Objects.isNull(myCurrentWarehouse)){ + log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse); + return R.fail(405,"多仓权限无法操作,请选择仓库"); + } + loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId()); + if(Objects.isNull(loadId)){ + log.warn(method+"配载id为空 loadId={}",loadId); + return R.fail(405,"配载id为空"); + } + + return carsLoadService.findLoadingPhoto(loadCarsDTO); + }catch (CustomerException e){ + log.error(e.message,e); + return R.fail(e.code,e.message); + }catch (Exception e){ + log.error(method+"系统异常",e); + return R.fail(500,"系统异常"); + } + } + + + @ResponseBody + @PostMapping("/uploadStartPhoto") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "上传发车前图片", notes = "传入loadCarsDTO") + public R uploadStartPhoto(@RequestBody LoadCarsDTO loadCarsDTO) { + String method = "############uploadStartPhoto: "; + log.info(method + "请求参数{}", loadCarsDTO); + Long loadId = loadCarsDTO.getLoadId(); + try{ + //当前登录人选择的仓库 + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if(Objects.isNull(myCurrentWarehouse)){ + log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse); + return R.fail(405,"多仓权限无法操作,请选择仓库"); + } + loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId()); + if(Objects.isNull(loadId)){ + log.warn(method+"配载id为空 loadId={}",loadId); + return R.fail(405,"配载id为空"); + } + + return carsLoadService.uploadStartPhoto(loadCarsDTO); + }catch (CustomerException e){ + log.error(e.message,e); + return R.fail(e.code,e.message); + }catch (Exception e){ + log.error(method+"系统异常",e); + return R.fail(500,"系统异常"); + } + } + + + @ResponseBody + @PostMapping("/findStartPhoto") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "查看发车前图片", notes = "传入loadCarsDTO") + public R findStartPhoto(@RequestBody LoadCarsDTO loadCarsDTO) { + String method = "############findStartPhoto: "; + log.info(method + "请求参数{}", loadCarsDTO); + Long loadId = loadCarsDTO.getLoadId(); + try{ + //当前登录人选择的仓库 + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if(Objects.isNull(myCurrentWarehouse)){ + log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse); + return R.fail(405,"多仓权限无法操作,请选择仓库"); + } + loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId()); + if(Objects.isNull(loadId)){ + log.warn(method+"配载id为空 loadId={}",loadId); + return R.fail(405,"配载id为空"); + } + + return carsLoadService.findStartPhoto(loadCarsDTO); + }catch (CustomerException e){ + log.error(e.message,e); + return R.fail(e.code,e.message); + }catch (Exception e){ + log.error(method+"系统异常",e); + return R.fail(500,"系统异常"); + } + } + + + @ResponseBody + @PostMapping("/uploadUnloadPhoto") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "上传卸车图片", notes = "传入loadCarsDTO") + public R uploadUnloadPhoto(@RequestBody LoadCarsDTO loadCarsDTO) { + String method = "############uploadUnloadPhoto: "; + log.info(method + "请求参数{}", loadCarsDTO); + Long loadId = loadCarsDTO.getLoadId(); + try{ + //当前登录人选择的仓库 + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if(Objects.isNull(myCurrentWarehouse)){ + log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse); + return R.fail(405,"多仓权限无法操作,请选择仓库"); + } + loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId()); + if(Objects.isNull(loadId)){ + log.warn(method+"配载id为空 loadId={}",loadId); + return R.fail(405,"配载id为空"); + } + + return carsLoadService.uploadUnloadPhoto(loadCarsDTO); + }catch (CustomerException e){ + log.error(e.message,e); + return R.fail(e.code,e.message); + }catch (Exception e){ + log.error(method+"系统异常",e); + return R.fail(500,"系统异常"); + } + } + + @ResponseBody + @PostMapping("/findUnloadPhoto") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "查看卸车图片", notes = "传入loadCarsDTO") + public R findUnloadPhoto(@RequestBody LoadCarsDTO loadCarsDTO) { + String method = "############findUnloadPhoto: "; + log.info(method + "请求参数{}", loadCarsDTO); + Long loadId = loadCarsDTO.getLoadId(); + try{ + //当前登录人选择的仓库 + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if(Objects.isNull(myCurrentWarehouse)){ + log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse); + return R.fail(405,"多仓权限无法操作,请选择仓库"); + } + loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId()); + if(Objects.isNull(loadId)){ + log.warn(method+"配载id为空 loadId={}",loadId); + return R.fail(405,"配载id为空"); + } + + return carsLoadService.findUnloadPhoto(loadCarsDTO); + }catch (CustomerException e){ + log.error(e.message,e); + return R.fail(e.code,e.message); + }catch (Exception e){ + log.error(method+"系统异常",e); + return R.fail(500,"系统异常"); + } + } + + + @ResponseBody + @PostMapping("/findLinePhoto") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "查看节点图片", notes = "传入loadCarsDTO") + public R findLinePhoto(@RequestBody LoadCarsDTO loadCarsDTO) { + String method = "############findLinePhoto: "; + log.info(method + "请求参数{}", loadCarsDTO); + Long loadId = loadCarsDTO.getLoadId(); + try{ + //当前登录人选择的仓库 + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if(Objects.isNull(myCurrentWarehouse)){ + log.warn(method+"仓库信息为空 myCurrentWarehouse={}",myCurrentWarehouse); + return R.fail(405,"多仓权限无法操作,请选择仓库"); + } + loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId()); + if(Objects.isNull(loadId)){ + log.warn(method+"配载id为空 loadId={}",loadId); + return R.fail(405,"配载id为空"); + } + + return carsLoadService.findLinePhoto(loadCarsDTO); + }catch (CustomerException e){ + log.error(e.message,e); + return R.fail(e.code,e.message); + }catch (Exception e){ + log.error(method+"系统异常",e); + return R.fail(500,"系统异常"); + } + } } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceMapper.xml index 0d85bd7e7..b6f7648b0 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineAdvanceMapper.xml @@ -11,7 +11,7 @@ - select lta.*, lbc.client_name htMallName from logpm_trunkline_advance lta @@ -147,17 +147,19 @@ + + select IFNULL(count(id),0) + from logpm_trunkline_cars_load_line_photo + where load_id = #{loadId} + and load_line_id = #{carsLoadLineId} + and type = #{type} + + and position = #{position} + + and is_deleted = 0 + + + + + diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml index 0dfa07ba1..062663827 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadMapper.xml @@ -507,12 +507,16 @@ select ltcl.*, - ltcll.node_status + ltcll.node_status, + ltcll.is_loading_photo isLoadingPhoto, + ltcll.is_start_photo isStartPhoto, + ltcll.is_unload_photo isUnloadPhoto from logpm_trunkline_cars_load ltcl left join logpm_trunkline_cars_load_line ltcll on ltcll.load_id = ltcl.id where ltcl.is_deleted = 0 diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceMergeService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceMergeService.java new file mode 100644 index 000000000..68180b5c1 --- /dev/null +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceMergeService.java @@ -0,0 +1,7 @@ +package com.logpm.trunkline.service; + +import com.logpm.trunkline.entity.TrunklineAdvanceMergeEntity; +import org.springblade.core.mp.base.BaseService; + +public interface ITrunklineAdvanceMergeService extends BaseService { +} diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadLinePhotoService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadLinePhotoService.java new file mode 100644 index 000000000..ab3b69028 --- /dev/null +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadLinePhotoService.java @@ -0,0 +1,12 @@ +package com.logpm.trunkline.service; + +import com.logpm.trunkline.entity.TrunklineCarsLoadLinePhotoEntity; +import org.springblade.core.mp.base.BaseService; + +import java.util.List; + +public interface ITrunklineCarsLoadLinePhotoService extends BaseService { + Integer findNumByLoadIdAndNodeIdAndTypeAndPosition(Long loadId, Long carsLoadLineId, Integer type, Integer position); + + List findListByLoadIdAndWarehouseId(Long loadId, Long warehouseId, Integer type, Integer position); +} 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 3b3eac037..e774ffddb 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 @@ -232,4 +232,18 @@ public interface ITrunklineCarsLoadService extends BaseService new TreeSet<>(Comparator.comparing(ImportCustomizedOuPaiDTO::getOrderPackageCode))), ArrayList::new)); + //提取出合包码不为空的数据 + List mergeDataList = importCustomizedOuPaiDTOS.stream().filter(item -> StringUtil.isNotBlank(item.getMergeCode())).collect(Collectors.toList()); + //保留合包码为空的数据 + importCustomizedOuPaiDTOS = importCustomizedOuPaiDTOS.stream().filter(item -> StringUtil.isBlank(item.getMergeCode())).collect(Collectors.toList()); + + //把mergeDataList根据合包码进行分组 + Map> mergeDataListMap = mergeDataList.stream().collect(Collectors.groupingBy(ImportCustomizedOuPaiDTO::getMergeCode)); + + List addSourceList = new ArrayList<>();//需要加回源数据的集合 + List addList = new ArrayList<>();//需要加入合包码的数据集合 + mergeDataListMap.keySet().forEach(mergeCode ->{ + List ls = mergeDataListMap.get(mergeCode); + //取出第一条放入需要处理的集合 + ImportCustomizedOuPaiDTO importCustomizedOuPaiDTO = ls.get(0); + if(!Objects.isNull(importCustomizedOuPaiDTO)){ + importCustomizedOuPaiDTO.setOrderPackageCode(mergeCode); + addSourceList.add(importCustomizedOuPaiDTO); + } + ls.forEach(item ->{ + TrunklineAdvanceMergeEntity trunklineAdvanceMergeEntity = new TrunklineAdvanceMergeEntity(); + trunklineAdvanceMergeEntity.setMergeCode(mergeCode); + trunklineAdvanceMergeEntity.setOrderPackageCode(item.getOrderPackageCode()); + trunklineAdvanceMergeEntity.setOrderCode(item.getOrderCode()); + addList.add(trunklineAdvanceMergeEntity); + }); + }); + importCustomizedOuPaiDTOS.addAll(addSourceList); + + //把pacakgeDetailExcelDTOS转成以orderPacakgeCode为一个Set集合 Set importCustomizedOuPaiDTOSet = importCustomizedOuPaiDTOS.stream().map(ImportCustomizedOuPaiDTO::getOrderPackageCode).collect(Collectors.toSet()); @@ -1789,6 +1819,8 @@ public class OpenOrderServiceImpl implements IOpenOrderService { advanceEntity.setCustomerName(importCustomizedOuPaiDTO.getCustomerName()); advanceEntity.setCustomerPhone(importCustomizedOuPaiDTO.getCustomerPhone()); advanceEntity.setCustomerAddress(importCustomizedOuPaiDTO.getCustomerAddress()); + advanceEntity.setStoreCode(importCustomizedOuPaiDTO.getStoreCode()); + advanceEntity.setStoreName(importCustomizedOuPaiDTO.getStoreName()); advanceEntity.setSystemType("线下"); advanceEntity.setServiceNum(importCustomizedOuPaiDTO.getServiceNum()); advanceEntity.setMatingType("1"); @@ -1925,6 +1957,10 @@ public class OpenOrderServiceImpl implements IOpenOrderService { } + if(CollUtil.isNotEmpty(addList)){ + advanceMergeService.saveBatch(addList); + } + long end = System.currentTimeMillis(); log.info("################本次耗时 " + (end - start) + "ms"); @@ -1970,6 +2006,33 @@ public class OpenOrderServiceImpl implements IOpenOrderService { //把importStandardOuPaiDTOS中orderPackageCode相同的元素去重 importStandardOuPaiDTOS = importStandardOuPaiDTOS.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ImportStandardOuPaiDTO::getOrderPackageCode))), ArrayList::new)); + //提取出合包码不为空的数据 + List mergeDataList = importStandardOuPaiDTOS.stream().filter(item -> StringUtil.isNotBlank(item.getMergeCode())).collect(Collectors.toList()); + //保留合包码为空的数据 + importStandardOuPaiDTOS = importStandardOuPaiDTOS.stream().filter(item -> StringUtil.isBlank(item.getMergeCode())).collect(Collectors.toList()); + + //把mergeDataList根据合包码进行分组 + Map> mergeDataListMap = mergeDataList.stream().collect(Collectors.groupingBy(ImportStandardOuPaiDTO::getMergeCode)); + + List addSourceList = new ArrayList<>();//需要加回源数据的集合 + List addList = new ArrayList<>();//需要加入合包码的数据集合 + mergeDataListMap.keySet().forEach(mergeCode ->{ + List ls = mergeDataListMap.get(mergeCode); + //取出第一条放入需要处理的集合 + ImportStandardOuPaiDTO importStandardOuPaiDTO = ls.get(0); + if(!Objects.isNull(importStandardOuPaiDTO)){ + importStandardOuPaiDTO.setOrderPackageCode(mergeCode); + addSourceList.add(importStandardOuPaiDTO); + } + ls.forEach(item ->{ + TrunklineAdvanceMergeEntity trunklineAdvanceMergeEntity = new TrunklineAdvanceMergeEntity(); + trunklineAdvanceMergeEntity.setMergeCode(mergeCode); + trunklineAdvanceMergeEntity.setOrderPackageCode(item.getOrderPackageCode()); + trunklineAdvanceMergeEntity.setOrderCode(item.getOrderCode()); + addList.add(trunklineAdvanceMergeEntity); + }); + }); + importStandardOuPaiDTOS.addAll(addSourceList); //把importStandardOuPaiDTOS转成以orderPacakgeCode为一个Set集合 Set importStandardOuPaiDTOSet = importStandardOuPaiDTOS.stream().map(ImportStandardOuPaiDTO::getOrderPackageCode).collect(Collectors.toSet()); @@ -2113,6 +2176,8 @@ public class OpenOrderServiceImpl implements IOpenOrderService { advanceEntity.setCustomerPhone(importStandardOuPaiDTO.getCustomerPhone()); advanceEntity.setCustomerAddress(importStandardOuPaiDTO.getCustomerAddress()); advanceEntity.setSenderFactory(importStandardOuPaiDTO.getSendFactory()); + advanceEntity.setStoreCode(importStandardOuPaiDTO.getStoreCode()); + advanceEntity.setStoreName(importStandardOuPaiDTO.getStoreName()); advanceEntity.setSystemType("线下"); advanceEntity.setMatingType("1"); advanceEntity.setWaybillStatus("0"); @@ -2301,6 +2366,10 @@ public class OpenOrderServiceImpl implements IOpenOrderService { CompletableFuture.allOf(comlist.toArray(new CompletableFuture[0])).join(); } + if(CollUtil.isNotEmpty(addList)){ + advanceMergeService.saveBatch(addList); + } + if(!CollUtil.isEmpty(advanceEntityList)){ carsLoadAsyncService.sendRabbitMessageLoadScanData(advanceEntityList); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceMergeServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceMergeServiceImpl.java new file mode 100644 index 000000000..a8f8b9c78 --- /dev/null +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceMergeServiceImpl.java @@ -0,0 +1,16 @@ +package com.logpm.trunkline.service.impl; + +import com.logpm.trunkline.entity.TrunklineAdvanceMergeEntity; +import com.logpm.trunkline.mapper.TrunklineAdvanceMergeMapper; +import com.logpm.trunkline.service.ITrunklineAdvanceMergeService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +@AllArgsConstructor +public class TrunklineAdvanceMergeServiceImpl extends BaseServiceImpl implements ITrunklineAdvanceMergeService { + +} diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadLinePhotoEntityServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadLinePhotoEntityServiceImpl.java new file mode 100644 index 000000000..3d4e7c64d --- /dev/null +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadLinePhotoEntityServiceImpl.java @@ -0,0 +1,28 @@ +package com.logpm.trunkline.service.impl; + +import com.logpm.trunkline.entity.TrunklineCarsLoadLinePhotoEntity; +import com.logpm.trunkline.mapper.TrunklineCarsLoadLinePhotoMapper; +import com.logpm.trunkline.service.ITrunklineCarsLoadLinePhotoService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@AllArgsConstructor +@Slf4j +public class TrunklineCarsLoadLinePhotoEntityServiceImpl extends BaseServiceImpl implements ITrunklineCarsLoadLinePhotoService { + + + @Override + public Integer findNumByLoadIdAndNodeIdAndTypeAndPosition(Long loadId, Long carsLoadLineId, Integer type, Integer position) { + return baseMapper.findNumByLoadIdAndNodeIdAndTypeAndPosition(loadId,carsLoadLineId,type,position); + } + + @Override + public List findListByLoadIdAndWarehouseId(Long loadId, Long warehouseId, Integer type, Integer position) { + return baseMapper.findListByLoadIdAndWarehouseId(loadId,warehouseId, type, position); + } +} diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java index b012ed703..2c6e7a2a6 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java @@ -127,6 +127,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl loadCarsPageList(LoadCarsDTO loadCarsDTO) { @@ -239,6 +240,20 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl map = new HashMap<>(); if(NumberUtil.equals(loadingNum,unloadNum)){ - return R.status(true); + map.put("status",1); + return R.data(map); }else{ - return R.status(false); + map.put("status",0); + return R.data(map); + } + } + + @Override + public R uploadLoadingPhoto(LoadCarsDTO loadCarsDTO) { + Long loadId = loadCarsDTO.getLoadId(); + Long warehouseId = loadCarsDTO.getWarehouseId(); + + TrunklineCarsLoadLineEntity carsLoadLine = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId); + if(Objects.isNull(carsLoadLine)){ + log.warn("###############uploadLoadingPhoto: 节点信息不存在 loadId={} warehouseId={}",loadId,warehouseId); + return R.fail(405,"节点信息不存在"); + } + String nodeStatus = carsLoadLine.getNodeStatus(); + Long carsLoadLineId = carsLoadLine.getId(); + + if("0".equals(nodeStatus)){ + log.warn("###############uploadLoadingPhoto: 车辆还未到达当前节点 loadId={} warehouseId={} nodeStatus={}",loadId,warehouseId,nodeStatus); + return R.fail(405,"车辆还未到达当前节点"); + } + + if("20".equals(nodeStatus)){ + log.warn("###############uploadLoadingPhoto: 当前节点已发车 loadId={} warehouseId={} nodeStatus={}",loadId,warehouseId,nodeStatus); + return R.fail(405,"当前节点已发车"); + } + + List addUrlList = loadCarsDTO.getAddUrlList(); + List removeUrlList = loadCarsDTO.getRemoveUrlList(); + + if(CollUtil.isNotEmpty(removeUrlList)){ + carsLoadLinePhotoService.deleteLogic(removeUrlList); + } + + if(CollUtil.isNotEmpty(addUrlList)){ + //批量新增 + addUrlList.forEach(carsLoadLinePhoto -> { + carsLoadLinePhoto.setLoadId(loadId); + carsLoadLinePhoto.setWarehouseId(warehouseId); + carsLoadLinePhoto.setLoadLineId(carsLoadLineId); + }); + carsLoadLinePhotoService.saveBatch(addUrlList); + } + + Integer num = carsLoadLinePhotoService.findNumByLoadIdAndNodeIdAndTypeAndPosition(loadId,carsLoadLineId,10,2); + + TrunklineCarsLoadLineEntity updateEntity = new TrunklineCarsLoadLineEntity(); + updateEntity.setId(carsLoadLineId); + if(NumberUtil.equals(0,num)){ + updateEntity.setIsLoadingPhoto(0); + }else{ + updateEntity.setIsLoadingPhoto(1); + } + trunklineCarsLoadLineService.updateById(updateEntity); + + return R.success("上传成功"); + } + + @Override + public R findLoadingPhoto(LoadCarsDTO loadCarsDTO) { + + Long loadId = loadCarsDTO.getLoadId(); + Long warehouseId = loadCarsDTO.getWarehouseId(); + + Map map = new HashMap<>(); + + List ls = carsLoadLinePhotoService.findListByLoadIdAndWarehouseId(loadId,warehouseId,10,2); + + //把qualityList通过position进行分组 +// List listQian = new ArrayList<>(); +// List listHou = new ArrayList<>(); +// List listZuo = new ArrayList<>(); +// List listYou = new ArrayList<>(); +// Map> listMap = ls.stream().collect(Collectors.groupingBy(TrunklineCarsLoadLinePhotoEntity::getPosition)); +// listMap.keySet().forEach(key -> { +// List trunklineCarsLoadLinePhotoEntities = listMap.get(key); +// if(NumberUtil.equals(1,key)){//后 +// listQian.addAll(trunklineCarsLoadLinePhotoEntities); +// }else if(NumberUtil.equals(2,key)){//后 +// listHou.addAll(trunklineCarsLoadLinePhotoEntities); +// }else if(NumberUtil.equals(3,key)){ +// listZuo.addAll(trunklineCarsLoadLinePhotoEntities); +// }else if(NumberUtil.equals(4,key)){ +// listYou.addAll(trunklineCarsLoadLinePhotoEntities); +// } +// }); +// +// map.put("listQian",listQian); +// map.put("listHou",listHou); +// map.put("listZuo",listZuo); +// map.put("listYou",listYou); + +// Map loadingObject = new HashMap<>(); +// loadingObject.put("loadingList",ls); + + return R.data(ls); + } + + @Override + public R uploadStartPhoto(LoadCarsDTO loadCarsDTO) { + Long loadId = loadCarsDTO.getLoadId(); + Long warehouseId = loadCarsDTO.getWarehouseId(); + + TrunklineCarsLoadLineEntity carsLoadLine = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId); + if(Objects.isNull(carsLoadLine)){ + log.warn("###############uploadStartPhoto: 节点信息不存在 loadId={} warehouseId={}",loadId,warehouseId); + return R.fail(405,"节点信息不存在"); + } + String nodeStatus = carsLoadLine.getNodeStatus(); + Long carsLoadLineId = carsLoadLine.getId(); + + if("0".equals(nodeStatus)){ + log.warn("###############uploadStartPhoto: 车辆还未到达当前节点 loadId={} warehouseId={} nodeStatus={}",loadId,warehouseId,nodeStatus); + return R.fail(405,"节点信息不存在"); + } + + if("20".equals(nodeStatus)){ + log.warn("###############uploadStartPhoto: 当前节点已发车 loadId={} warehouseId={} nodeStatus={}",loadId,warehouseId,nodeStatus); + return R.fail(405,"当前节点已发车"); + } + + List addUrlList = loadCarsDTO.getAddUrlList(); + List removeUrlList = loadCarsDTO.getRemoveUrlList(); + + if(CollUtil.isNotEmpty(removeUrlList)){ + carsLoadLinePhotoService.deleteLogic(removeUrlList); + } + + if(CollUtil.isNotEmpty(addUrlList)){ + //批量新增 + addUrlList.forEach(carsLoadLinePhoto -> { + carsLoadLinePhoto.setLoadId(loadId); + carsLoadLinePhoto.setWarehouseId(warehouseId); + carsLoadLinePhoto.setLoadLineId(carsLoadLineId); + }); + carsLoadLinePhotoService.saveBatch(addUrlList); + } + + TrunklineCarsLoadLineEntity updateEntity = new TrunklineCarsLoadLineEntity(); + updateEntity.setId(carsLoadLineId); + + List qualityList = carsLoadLinePhotoService.findListByLoadIdAndWarehouseId(loadId, warehouseId, 20, null); + //把qualityList通过position=2进行过滤生成新的list + List qualityListHou = qualityList.stream().filter(item -> item.getPosition().equals(2)).collect(Collectors.toList()); + if(qualityListHou.size() == 0){ + updateEntity.setIsStartPhoto(0); + trunklineCarsLoadLineService.updateById(updateEntity); + return R.success("上传成功"); + } + List qualityListZuo = qualityList.stream().filter(item -> item.getPosition().equals(3)).collect(Collectors.toList()); + if(qualityListZuo.size() == 0){ + updateEntity.setIsStartPhoto(0); + trunklineCarsLoadLineService.updateById(updateEntity); + return R.success("上传成功"); + } + List qualityListYou = qualityList.stream().filter(item -> item.getPosition().equals(4)).collect(Collectors.toList()); + if(qualityListYou.size() == 0){ + updateEntity.setIsStartPhoto(0); + trunklineCarsLoadLineService.updateById(updateEntity); + return R.success("上传成功"); + } + + List yubuList = carsLoadLinePhotoService.findListByLoadIdAndWarehouseId(loadId, warehouseId, 21, null); + //把qualityList通过position=2进行过滤生成新的list + List yubuListHou = yubuList.stream().filter(item -> item.getPosition().equals(2)).collect(Collectors.toList()); + if(yubuListHou.size() == 0){ + updateEntity.setIsStartPhoto(0); + trunklineCarsLoadLineService.updateById(updateEntity); + return R.success("上传成功"); + } + List yubuListZuo = yubuList.stream().filter(item -> item.getPosition().equals(3)).collect(Collectors.toList()); + if(yubuListZuo.size() == 0){ + updateEntity.setIsStartPhoto(0); + trunklineCarsLoadLineService.updateById(updateEntity); + return R.success("上传成功"); + } + List yubuListYou = yubuList.stream().filter(item -> item.getPosition().equals(4)).collect(Collectors.toList()); + if(yubuListYou.size() == 0){ + updateEntity.setIsStartPhoto(0); + trunklineCarsLoadLineService.updateById(updateEntity); + return R.success("上传成功"); + } + + updateEntity.setIsStartPhoto(1); + trunklineCarsLoadLineService.updateById(updateEntity); + + return R.success("上传成功"); + } + + @Override + public R findStartPhoto(LoadCarsDTO loadCarsDTO) { + + Long loadId = loadCarsDTO.getLoadId(); + Long warehouseId = loadCarsDTO.getWarehouseId(); + + +// Map qualityMap = new HashMap<>(); + + List ls = new ArrayList<>(); + + List qualityList = carsLoadLinePhotoService.findListByLoadIdAndWarehouseId(loadId, warehouseId, 20, null); + //把qualityList通过position进行分组 +// List qualityListQian = new ArrayList<>(); +// List qualityListHou = new ArrayList<>(); +// List qualityListZuo = new ArrayList<>(); +// List qualityListYou = new ArrayList<>(); +// Map> qualityListMap = qualityList.stream().collect(Collectors.groupingBy(TrunklineCarsLoadLinePhotoEntity::getPosition)); +// qualityListMap.keySet().forEach(key -> { +// List trunklineCarsLoadLinePhotoEntities = qualityListMap.get(key); +// if(NumberUtil.equals(1,key)){//后 +// qualityListQian.addAll(trunklineCarsLoadLinePhotoEntities); +// }else if(NumberUtil.equals(2,key)){//后 +// qualityListHou.addAll(trunklineCarsLoadLinePhotoEntities); +// }else if(NumberUtil.equals(3,key)){ +// qualityListZuo.addAll(trunklineCarsLoadLinePhotoEntities); +// }else if(NumberUtil.equals(4,key)){ +// qualityListYou.addAll(trunklineCarsLoadLinePhotoEntities); +// } +// }); +// +// qualityMap.put("qualityListQian",qualityListQian); +// qualityMap.put("qualityListHou",qualityListHou); +// qualityMap.put("qualityListZuo",qualityListZuo); +// qualityMap.put("qualityListYou",qualityListYou); + + +// Map yubuMap = new HashMap<>(); +// List yubuListQian = new ArrayList<>(); +// List yubuListHou = new ArrayList<>(); +// List yubuListZuo = new ArrayList<>(); +// List yubuListYou = new ArrayList<>(); + List yubuList = carsLoadLinePhotoService.findListByLoadIdAndWarehouseId(loadId, warehouseId, 21, null); + //把qualityList通过position进行分组 +// Map> yubuListMap = yubuList.stream().collect(Collectors.groupingBy(TrunklineCarsLoadLinePhotoEntity::getPosition)); +// yubuListMap.keySet().forEach(key -> { +// List trunklineCarsLoadLinePhotoEntities = yubuListMap.get(key); +// if(NumberUtil.equals(1,key)){//后 +// yubuListQian.addAll(trunklineCarsLoadLinePhotoEntities); +// }else if(NumberUtil.equals(2,key)){//后 +// yubuListHou.addAll(trunklineCarsLoadLinePhotoEntities); +// }else if(NumberUtil.equals(3,key)){ +// yubuListZuo.addAll(trunklineCarsLoadLinePhotoEntities); +// }else if(NumberUtil.equals(4,key)){ +// yubuListYou.addAll(trunklineCarsLoadLinePhotoEntities); +// } +// }); +// +// yubuMap.put("yubuListQian",yubuListQian); +// yubuMap.put("yubuListHou",yubuListHou); +// yubuMap.put("yubuListZuo",yubuListZuo); +// yubuMap.put("yubuListYou",yubuListYou); + + +// Map map = new HashMap<>(); +// map.put("qualityList",qualityList); +// map.put("yubuList",yubuList); + + ls.addAll(qualityList); + ls.addAll(yubuList); + + return R.data(ls); + } + + @Override + public R uploadUnloadPhoto(LoadCarsDTO loadCarsDTO) { + Long loadId = loadCarsDTO.getLoadId(); + Long warehouseId = loadCarsDTO.getWarehouseId(); + + TrunklineCarsLoadLineEntity carsLoadLine = trunklineCarsLoadLineService.findEntityByLoadIdAndNodeId(loadId, warehouseId); + if(Objects.isNull(carsLoadLine)){ + log.warn("###############uploadUnloadPhoto: 节点信息不存在 loadId={} warehouseId={}",loadId,warehouseId); + return R.fail(405,"节点信息不存在"); + } + String nodeStatus = carsLoadLine.getNodeStatus(); + Long carsLoadLineId = carsLoadLine.getId(); + + if("0".equals(nodeStatus)){ + log.warn("###############uploadUnloadPhoto: 车辆还未到达当前节点 loadId={} warehouseId={} nodeStatus={}",loadId,warehouseId,nodeStatus); + return R.fail(405,"节点信息不存在"); + } + + if("20".equals(nodeStatus)){ + log.warn("###############uploadUnloadPhoto: 当前节点已发车 loadId={} warehouseId={} nodeStatus={}",loadId,warehouseId,nodeStatus); + return R.fail(405,"当前节点已发车"); + } + + String unloadStatus = carsLoadLine.getUnloadStatus(); + if(!"0".equals(unloadStatus)){ + log.warn("###############uploadUnloadPhoto: 当前节点已卸车确认 loadId={} warehouseId={} unloadStatus={}",loadId,warehouseId,unloadStatus); + return R.fail(405,"当前节点已卸车确认"); + } + + + + List addUrlList = loadCarsDTO.getAddUrlList(); + List removeUrlList = loadCarsDTO.getRemoveUrlList(); + + if(CollUtil.isNotEmpty(removeUrlList)){ + carsLoadLinePhotoService.deleteLogic(removeUrlList); + } + + if(CollUtil.isNotEmpty(addUrlList)){ + //批量新增 + addUrlList.forEach(carsLoadLinePhoto -> { + carsLoadLinePhoto.setLoadId(loadId); + carsLoadLinePhoto.setWarehouseId(warehouseId); + carsLoadLinePhoto.setLoadLineId(carsLoadLineId); + }); + carsLoadLinePhotoService.saveBatch(addUrlList); + } + + TrunklineCarsLoadLineEntity updateEntity = new TrunklineCarsLoadLineEntity(); + updateEntity.setId(carsLoadLineId); + + List qualityList = carsLoadLinePhotoService.findListByLoadIdAndWarehouseId(loadId, warehouseId, 30, null); + //把qualityList通过position=2进行过滤生成新的list + List qualityListHou = qualityList.stream().filter(item -> item.getPosition().equals(2)).collect(Collectors.toList()); + if(qualityListHou.size() == 0){ + updateEntity.setIsUnloadPhoto(0); + trunklineCarsLoadLineService.updateById(updateEntity); + return R.success("上传成功"); + } + List qualityListZuo = qualityList.stream().filter(item -> item.getPosition().equals(3)).collect(Collectors.toList()); + if(qualityListZuo.size() == 0){ + updateEntity.setIsUnloadPhoto(0); + trunklineCarsLoadLineService.updateById(updateEntity); + return R.success("上传成功"); + } + List qualityListYou = qualityList.stream().filter(item -> item.getPosition().equals(4)).collect(Collectors.toList()); + if(qualityListYou.size() == 0){ + updateEntity.setIsUnloadPhoto(0); + trunklineCarsLoadLineService.updateById(updateEntity); + return R.success("上传成功"); + } + + List protectionList = carsLoadLinePhotoService.findListByLoadIdAndWarehouseId(loadId, warehouseId, 31, 2); + if(protectionList.size() == 0){ + updateEntity.setIsUnloadPhoto(0); + trunklineCarsLoadLineService.updateById(updateEntity); + return R.success("上传成功"); + } + + updateEntity.setIsUnloadPhoto(1); + trunklineCarsLoadLineService.updateById(updateEntity); + + return R.success("上传成功"); + } + + @Override + public R findUnloadPhoto(LoadCarsDTO loadCarsDTO) { + Long loadId = loadCarsDTO.getLoadId(); + Long warehouseId = loadCarsDTO.getWarehouseId(); + + + Map qualityMap = new HashMap<>(); + + List ls = new ArrayList<>(); + + List qualityList = carsLoadLinePhotoService.findListByLoadIdAndWarehouseId(loadId, warehouseId, 30, null); + //把qualityList通过position进行分组 +// List qualityListQian = new ArrayList<>(); +// List qualityListHou = new ArrayList<>(); +// List qualityListZuo = new ArrayList<>(); +// List qualityListYou = new ArrayList<>(); +// Map> qualityListMap = qualityList.stream().collect(Collectors.groupingBy(TrunklineCarsLoadLinePhotoEntity::getPosition)); +// qualityListMap.keySet().forEach(key -> { +// List trunklineCarsLoadLinePhotoEntities = qualityListMap.get(key); +// if(NumberUtil.equals(1,key)){//后 +// qualityListQian.addAll(trunklineCarsLoadLinePhotoEntities); +// }else if(NumberUtil.equals(2,key)){//后 +// qualityListHou.addAll(trunklineCarsLoadLinePhotoEntities); +// }else if(NumberUtil.equals(3,key)){ +// qualityListZuo.addAll(trunklineCarsLoadLinePhotoEntities); +// }else if(NumberUtil.equals(4,key)){ +// qualityListYou.addAll(trunklineCarsLoadLinePhotoEntities); +// } +// }); +// +// qualityMap.put("qualityListQian",qualityListQian); +// qualityMap.put("qualityListHou",qualityListHou); +// qualityMap.put("qualityListZuo",qualityListZuo); +// qualityMap.put("qualityListYou",qualityListYou); +// +// +// Map protectionMap = new HashMap<>(); + + List protectionList = carsLoadLinePhotoService.findListByLoadIdAndWarehouseId(loadId, warehouseId, 31, null); + +// protectionMap.put("protectionList",protectionList); + + +// Map map = new HashMap<>(); +// map.put("unloadQualityList",qualityList); +// map.put("protectionList",protectionList); + + ls.addAll(qualityList); + ls.addAll(protectionList); + + return R.data(ls); + } + + @Override + public R findLinePhoto(LoadCarsDTO loadCarsDTO) { + Long loadId = loadCarsDTO.getLoadId(); + + List> resultList = new ArrayList<>(); + + List linePhotoEntityList = carsLoadLinePhotoService.findListByLoadIdAndWarehouseId(loadId, null, null, null); + //把linePhotoEntityList中所有元素的loadLineId放入一个Set集合 + Set loadLineIdSet = linePhotoEntityList.stream().map(TrunklineCarsLoadLinePhotoEntity::getLoadLineId).collect(Collectors.toSet()); + if(CollUtil.isNotEmpty(loadLineIdSet)){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id",loadLineIdSet); + List carsLoadLineList = trunklineCarsLoadLineService.list(queryWrapper); + //把carsLoadLineList转化为以id为key的map + Map carsLoadLineMap = carsLoadLineList.stream().collect(Collectors.toMap(TrunklineCarsLoadLineEntity::getId, Function.identity())); + + //把linePhotoEntityList中所有元素以loadLineId进行分组 + Map> linePhotoMap = linePhotoEntityList.stream().collect(Collectors.groupingBy(TrunklineCarsLoadLinePhotoEntity::getLoadLineId)); + + + + linePhotoMap.keySet().forEach(loadLineId -> { + Map map = new HashMap<>(); + List trunklineCarsLoadLinePhotoEntities = linePhotoMap.get(loadLineId); + TrunklineCarsLoadLineEntity trunklineCarsLoadLineEntity = carsLoadLineMap.get(loadLineId); + map.put("carsLoadLineEntity",trunklineCarsLoadLineEntity); + + + Map loadingMap = new HashMap<>(); + + //把trunklineCarsLoadLinePhotoEntities通过type=10进行过滤 + List ls = trunklineCarsLoadLinePhotoEntities.stream().filter(item -> item.getType().equals(10)).collect(Collectors.toList()); + + //把qualityList通过position进行分组 +// List listQian = new ArrayList<>(); +// List listHou = new ArrayList<>(); +// List listZuo = new ArrayList<>(); +// List listYou = new ArrayList<>(); +// Map> listMap = ls.stream().collect(Collectors.groupingBy(TrunklineCarsLoadLinePhotoEntity::getPosition)); +// listMap.keySet().forEach(key -> { +// List list = listMap.get(key); +// if(NumberUtil.equals(1,key)){//后 +// listQian.addAll(list); +// }else if(NumberUtil.equals(2,key)){//后 +// listHou.addAll(list); +// }else if(NumberUtil.equals(3,key)){ +// listZuo.addAll(list); +// }else if(NumberUtil.equals(4,key)){ +// listYou.addAll(list); +// } +// }); +// +// loadingMap.put("listQian",listQian); +// loadingMap.put("listHou",listHou); +// loadingMap.put("listZuo",listZuo); +// loadingMap.put("listYou",listYou); + +// Map loadingObject = new HashMap<>(); +// loadingObject.put("loadingList",ls); + + map.put("loadingObject",ls); + + //发车 +// Map qualityMap = new HashMap<>(); + + List qualityList = trunklineCarsLoadLinePhotoEntities.stream().filter(item -> item.getType().equals(20)).collect(Collectors.toList()); + //把qualityList通过position进行分组 +// List qualityListQian = new ArrayList<>(); +// List qualityListHou = new ArrayList<>(); +// List qualityListZuo = new ArrayList<>(); +// List qualityListYou = new ArrayList<>(); +// Map> qualityListMap = qualityList.stream().collect(Collectors.groupingBy(TrunklineCarsLoadLinePhotoEntity::getPosition)); +// qualityListMap.keySet().forEach(key -> { +// List list = qualityListMap.get(key); +// if(NumberUtil.equals(1,key)){//后 +// qualityListQian.addAll(list); +// }else if(NumberUtil.equals(2,key)){//后 +// qualityListHou.addAll(list); +// }else if(NumberUtil.equals(3,key)){ +// qualityListZuo.addAll(list); +// }else if(NumberUtil.equals(4,key)){ +// qualityListYou.addAll(list); +// } +// }); +// +// qualityMap.put("qualityListQian",qualityListQian); +// qualityMap.put("qualityListHou",qualityListHou); +// qualityMap.put("qualityListZuo",qualityListZuo); +// qualityMap.put("qualityListYou",qualityListYou); + + +// Map yubuMap = new HashMap<>(); +// List yubuListQian = new ArrayList<>(); +// List yubuListHou = new ArrayList<>(); +// List yubuListZuo = new ArrayList<>(); +// List yubuListYou = new ArrayList<>(); + List yubuList = trunklineCarsLoadLinePhotoEntities.stream().filter(item -> item.getType().equals(21)).collect(Collectors.toList()); + //把qualityList通过position进行分组 +// Map> yubuListMap = yubuList.stream().collect(Collectors.groupingBy(TrunklineCarsLoadLinePhotoEntity::getPosition)); +// yubuListMap.keySet().forEach(key -> { +// List list = yubuListMap.get(key); +// if(NumberUtil.equals(1,key)){//后 +// yubuListQian.addAll(list); +// }else if(NumberUtil.equals(2,key)){//后 +// yubuListHou.addAll(list); +// }else if(NumberUtil.equals(3,key)){ +// yubuListZuo.addAll(list); +// }else if(NumberUtil.equals(4,key)){ +// yubuListYou.addAll(list); +// } +// }); +// +// yubuMap.put("yubuListQian",yubuListQian); +// yubuMap.put("yubuListHou",yubuListHou); +// yubuMap.put("yubuListZuo",yubuListZuo); +// yubuMap.put("yubuListYou",yubuListYou); + + +// Map startObject = new HashMap<>(); +// startObject.put("qualityList",qualityList); +// startObject.put("yubuList",yubuList); + + map.put("startObject",qualityList.addAll(yubuList)); + + //卸车 + Map unloadQualityMap = new HashMap<>(); + + List unloadQualityList = trunklineCarsLoadLinePhotoEntities.stream().filter(item -> item.getType().equals(30)).collect(Collectors.toList()); + //把qualityList通过position进行分组 +// List unloadQualityListQian = new ArrayList<>(); +// List unloadQualityListHou = new ArrayList<>(); +// List unloadQualityListZuo = new ArrayList<>(); +// List unloadQualityListYou = new ArrayList<>(); +// Map> unloadQualityListMap = unloadQualityList.stream().collect(Collectors.groupingBy(TrunklineCarsLoadLinePhotoEntity::getPosition)); +// qualityListMap.keySet().forEach(key -> { +// List list = unloadQualityListMap.get(key); +// if(NumberUtil.equals(1,key)){//后 +// unloadQualityListQian.addAll(list); +// }else if(NumberUtil.equals(2,key)){//后 +// unloadQualityListHou.addAll(list); +// }else if(NumberUtil.equals(3,key)){ +// unloadQualityListZuo.addAll(list); +// }else if(NumberUtil.equals(4,key)){ +// unloadQualityListYou.addAll(list); +// } +// }); +// +// unloadQualityMap.put("unloadQualityListQian",unloadQualityListQian); +// unloadQualityMap.put("unloadQualityListHou",unloadQualityListHou); +// unloadQualityMap.put("unloadQualityListZuo",unloadQualityListZuo); +// unloadQualityMap.put("unloadQualityListYou",unloadQualityListYou); + + +// Map protectionMap = new HashMap<>(); + + List protectionList = trunklineCarsLoadLinePhotoEntities.stream().filter(item -> item.getType().equals(31)).collect(Collectors.toList()); + +// protectionMap.put("protectionList",protectionList); + + +// Map unloadObject = new HashMap<>(); +// unloadObject.put("unloadQualityList",unloadQualityList); +// unloadObject.put("protectionList",protectionList); + + + map.put("unloadObject",unloadQualityList.addAll(protectionList)); + + resultList.add(map); + }); } + + + return R.data(resultList); } @@ -2834,6 +3424,13 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl Date: Tue, 15 Oct 2024 15:17:03 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E4=B8=8A=E6=9E=B6=E3=80=81=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E9=A2=84=E7=BA=A6=E8=AF=A6=E6=83=85BUG=E3=80=81=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=A4=87=E8=B4=A7=E6=89=AB=E6=8F=8F=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/DistributionReservationMapper.xml | 8 +- .../impl/DistributionStockupServiceImpl.java | 2 +- .../WarehouseWarehousingEntryController.java | 1 + .../impl/WarehouseConfigServiceImpl.java | 1 + .../WarehouseWarehousingEntryServiceImpl.java | 107 +++++++++++------- 5 files changed, 77 insertions(+), 42 deletions(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml index f7f2cf6a7..885b931e4 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml @@ -624,7 +624,7 @@ ldsl.sku, ldsl.source_type, ldrs.reservation_num, - count(ldsld.stock_package_code) AS stockupNum, + (SELECT IFNULL(SUM(stock_quantity),0) FROM logpm_distribution_stock WHERE reservation_id = ldrs.reservation_id AND stock_list_id = ldrs.stocklist_id) AS stockupNum, (SELECT lds.stockup_area FROM logpm_distribution_stockup_info AS ldsi INNER JOIN logpm_distribution_stockup AS lds ON ldsi.stockup_id = lds.id WHERE ldsi.reservation_id = ldrs.reservation_id) AS stockupArea FROM @@ -632,7 +632,11 @@ INNER JOIN logpm_distribution_stock_list AS ldsl ON ldrs.stocklist_id = ldsl.id INNER JOIN logpm_dis_stock_list_detail AS ldsld ON ldrs.reservation_id = ldsld.reservation_id and ldrs.stocklist_id = ldsl.id - WHERE ldrs.reservation_id = #{reservationId} + WHERE + ldrs.is_deleted = 0 + AND ldrs.reservation_id = #{reservationId} + + AND ldrs.stock_list_status != 2 GROUP BY ldsl.id select count(*) billCount from - logpm_platform.logpm_warehouse_waybill + logpm_warehouse_waybill where freeze_status = 0 diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/IndexCountMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/IndexCountMapper.xml index b3aa9c612..bd0c57778 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/IndexCountMapper.xml +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/IndexCountMapper.xml @@ -5,7 +5,7 @@ select count(*) FROM - logpm_platform.logpm_aftersales_work_order + logpm_aftersales_work_order where create_time > MONTH(CURRENT_DATE()) @@ -24,8 +24,8 @@ - select count(*) count,b.type_service as typeService from logpm_platform.logpm_distribution_parcel_list as a - inner join logpm_platform.logpm_distribution_stock_article as b on a.stock_article_id = b.id + select count(*) count,b.type_service as typeService from logpm_distribution_parcel_list as a + inner join logpm_distribution_stock_article as b on a.stock_article_id = b.id where a.create_time > MONTH(CURRENT_DATE()) diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineBillladingWaybillMapper.xml b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineBillladingWaybillMapper.xml index dd552b2ca..4c424be0a 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineBillladingWaybillMapper.xml +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineBillladingWaybillMapper.xml @@ -51,7 +51,7 @@ left join (select IFNULL(ltad.waybill_no,'————') waybillNo, COUNT(ltbp.id) num from logpm_trunkline_billlading_package ltbp - left join logpm_platform.logpm_trunkline_advance_detail ltad on ltbp.order_package_code = ltad.order_package_code + left join logpm_trunkline_advance_detail ltad on ltbp.order_package_code = ltad.order_package_code where ltbp.billlading_id=#{billladingId} group by IFNULL(ltad.waybill_no,'————')) t on t.waybillNo = ltbw.waybill_no left join logpm_trunkline_billlading ltb on ltb.id = ltbw.billlading_id @@ -140,7 +140,7 @@ left join (select IFNULL(ltad.waybill_no,'————') waybillNo, COUNT(ltbp.id) num from logpm_trunkline_billlading_package ltbp - left join logpm_platform.logpm_trunkline_advance_detail ltad on ltbp.order_package_code = ltad.order_package_code + left join logpm_trunkline_advance_detail ltad on ltbp.order_package_code = ltad.order_package_code where ltbp.billlading_id=#{billladingId} group by IFNULL(ltad.waybill_no,'————')) t on t.waybillNo = ltbw.waybill_no left join logpm_trunkline_billlading ltb on ltb.id = ltbw.billlading_id diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseRetentionRecordMapper.xml b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseRetentionRecordMapper.xml index 819440f90..a93663d94 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseRetentionRecordMapper.xml +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseRetentionRecordMapper.xml @@ -91,7 +91,7 @@ remark, cancel_retention_user_name, cancel_remark - from logpm_platform.logpm_warehouse_retention_record lwrr + from logpm_warehouse_retention_record lwrr lwrr.is_deleted = 0 - select DISTINCT ldsi.stockup_id , ldpl.id id,ldpl.order_package_code orderPackageCode,lds.type + select ldsi.stockup_id , ldr.reservation_code, ldpl.id id,ldpl.order_package_code orderPackageCode,lds.type stockupStatus,ldpl.firsts,ldpl.second,ldpl.third_product thirdProduct, ldpl.material_name materialName,lds.create_time stockupDate,lds.stockup_area stockupArea,ldpl.goods_allocation - goodsAllocation,lwt.pallet_name pallet + goodsAllocation,ldpl.pallet pallet from logpm_distribution_stockup_info ldsi + LEFT JOIN logpm_distribution_reservation ldr on ldr.id= ldsi.reservation_id LEFT JOIN logpm_distribution_reservation_package ldrp on ldrp.reservation_id = ldsi.reservation_id LEFT JOIN logpm_distribution_parcel_list ldpl on ldpl.id = ldrp.parce_list_id LEFT JOIN logpm_distribution_stock lds on ldpl.id = lds.parcel_list_id and lds.stockup_id = ldsi.stockup_id - LEFT JOIN logpm_warehouse_tray_goods lwtg on lwtg.association_id = ldpl.id and lwtg.association_type = '3' - LEFT JOIN logpm_warehouse_tray lwt on lwtg.tray_id = lwt.id ldsi.stockup_id =#{id} and ldpl.order_package_code is not null and ldsi.stock_status != 4 AND ldrp.packet_bar_status != 2 diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml index f176246a6..559f303e2 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.xml @@ -944,33 +944,43 @@