From c3877be039e6a4bf08f17e5d27fa640f932de0d8 Mon Sep 17 00:00:00 2001 From: zhenghaoyu <zhenghaoyu@superbgrace.com> Date: Sat, 22 Jul 2023 19:23:14 +0800 Subject: [PATCH] =?UTF-8?q?1.=E8=87=AA=E6=8F=90=E6=A8=A1=E5=9D=97APP?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DistributionBillLadingScanEntity.java | 60 ++++++ .../vo/DistrilbutionBillLadingAppVO.java | 29 ++- .../DistrilbutionAppBillLadingDetailVO.java | 41 ++++ ...DistrilbutionAppBillLadingOrderMainVO.java | 42 ++++ .../DistrilbutionAppBillLadingOrderVO.java | 43 ++++ .../DistributionBillLadingAppController.java | 26 ++- .../DistributionBillLadingScanMapper.java | 9 + .../mapper/DistrilbutionBillLadingMapper.java | 9 + .../mapper/DistrilbutionBillLadingMapper.xml | 56 +++++ .../IDistributionBillLadingScanService.java | 7 + .../IDistrilbutionBillLadingService.java | 10 + ...DistributionBillLadingScanServiceImpl.java | 14 ++ .../DistrilbutionBillLadingServiceImpl.java | 193 +++++++++++++++++- 13 files changed, 527 insertions(+), 12 deletions(-) create mode 100644 blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionBillLadingScanEntity.java create mode 100644 blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingDetailVO.java create mode 100644 blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingOrderMainVO.java create mode 100644 blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingOrderVO.java create mode 100644 blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionBillLadingScanMapper.java create mode 100644 blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionBillLadingScanService.java create mode 100644 blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionBillLadingScanServiceImpl.java diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionBillLadingScanEntity.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionBillLadingScanEntity.java new file mode 100644 index 000000000..a6444c28c --- /dev/null +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionBillLadingScanEntity.java @@ -0,0 +1,60 @@ +package com.logpm.distribution.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.mp.base.BaseEntity; + +@Data +@TableName("logpm_distribution_bill_lading_scan") +@ApiModel(value = "DistributionBillLadingScan对象", description = "自提扫描表") +@EqualsAndHashCode(callSuper = true) +public class DistributionBillLadingScanEntity extends BaseEntity { + + /** + * 预留1 + */ + @ApiModelProperty(value = "预留1") + private String reserve1; + /** + * 预留2 + */ + @ApiModelProperty(value = "预留2") + private String reserve2; + /** + * 预留3 + */ + @ApiModelProperty(value = "预留3") + private String reserve3; + /** + * 预留4 + */ + @ApiModelProperty(value = "预留4") + private String reserve4; + /** + * 预留5 + */ + @ApiModelProperty(value = "预留5") + private String reserve5; + + @ApiModelProperty(value = "包件码") + private String packetBarCode; + + @ApiModelProperty(value = "节点") + private Integer nodeType; + + @ApiModelProperty(value = "扫码类型 1 pda扫码 2 手填") + private Integer scanType; + + @ApiModelProperty(value = "包件id") + private Long parcelListId; + + @ApiModelProperty(value = "订单自编号") + private String orderSelfNumbering; + + @ApiModelProperty(value = "订单id") + private Long stockArticleId; + +} diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistrilbutionBillLadingAppVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistrilbutionBillLadingAppVO.java index 5c2b3e57c..9bcb697f5 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistrilbutionBillLadingAppVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistrilbutionBillLadingAppVO.java @@ -17,9 +17,14 @@ package com.logpm.distribution.vo; import com.logpm.distribution.entity.DistrilbutionBillLadingEntity; +import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingDetailVO; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + /** * 提货单 视图实体类 * @@ -31,9 +36,31 @@ import lombok.EqualsAndHashCode; public class DistrilbutionBillLadingAppVO extends DistrilbutionBillLadingEntity { private static final long serialVersionUID = 1L; + private String stockArticleId; + private Integer carType; private String carTypeStr; -// private Integer + private String condition;//提货状态 + private String conditionStr;//提货状态 + + private String pickUpPlate;//车牌号 + + private String consignee;//提货人 + + private String stockupStatus;//备货状态 + private String stockupStatusStr; + + private Date createTime;//制单时间 + private Date pickUpTime;//提货时间 + + + private Integer orderNum;//订单总数 + private Integer planNum;//自提件数 + private Integer signedNum;//签收总数 + + private Integer completeNum;//齐套总数 + + private List<DistrilbutionAppBillLadingDetailVO> list = new ArrayList<>(); } diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingDetailVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingDetailVO.java new file mode 100644 index 000000000..75c004b47 --- /dev/null +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingDetailVO.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package com.logpm.distribution.vo.app; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 提货单 视图实体类 + * + * @author cyz + * @since 2023-06-14 + */ +@Data +public class DistrilbutionAppBillLadingDetailVO implements Serializable { + private static final long serialVersionUID = 1L; + + private Long stockArticleId; + private String orderSelfNumbering; + + private String packetBarCode; + + private Integer scanStatus;//扫码状态 + + private Integer errorStatus;//异常状态 +} diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingOrderMainVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingOrderMainVO.java new file mode 100644 index 000000000..85de5eb50 --- /dev/null +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingOrderMainVO.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package com.logpm.distribution.vo.app; + +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * 提货单 视图实体类 + * + * @author cyz + * @since 2023-06-14 + */ +@Data +public class DistrilbutionAppBillLadingOrderMainVO implements Serializable { + private static final long serialVersionUID = 1L; + + private Integer orderNum;//订单总数 + private Integer completeNum;//订单总数 + private Integer planNum;//自提件数 + private Integer signedNum;//签收总数 + + private List<DistrilbutionAppBillLadingOrderVO> list = new ArrayList<>(); + +} diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingOrderVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingOrderVO.java new file mode 100644 index 000000000..902c29199 --- /dev/null +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistrilbutionAppBillLadingOrderVO.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package com.logpm.distribution.vo.app; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 提货单 视图实体类 + * + * @author cyz + * @since 2023-06-14 + */ +@Data +public class DistrilbutionAppBillLadingOrderVO implements Serializable { + private static final long serialVersionUID = 1L; + + private Long stockArticleId; + private String orderSelfNumbering; + + private Integer orderStatus;//状态 + + private Integer planNum;//自提件数 + private Integer signedNum;//签收总数 + + + +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java index c6608bab5..cc41f3c76 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java @@ -19,7 +19,8 @@ package com.logpm.distribution.appcontroller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.logpm.distribution.service.IDistrilbutionBillLadingService; -import com.logpm.distribution.vo.DistrilbutionBillLadingVO; +import com.logpm.distribution.vo.DistrilbutionBillLadingAppVO; +import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderMainVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -59,11 +60,30 @@ public class DistributionBillLadingAppController extends BladeController { @GetMapping("/pageList") @ApiOperationSupport(order = 1) @ApiOperation(value = "分页列表", notes = "传入stockupDTO") - public R<IPage<DistrilbutionBillLadingVO>> pageList(@ApiIgnore @RequestParam Map<String, Object> distrilbutionBillLading, Query query) { - IPage<DistrilbutionBillLadingVO> pages = distrilbutionBillLadingService.pageList(Condition.getPage(query), distrilbutionBillLading); + public R<IPage<DistrilbutionBillLadingAppVO>> pageList(@ApiIgnore @RequestParam Map<String, Object> distrilbutionBillLading, Query query) { + IPage<DistrilbutionBillLadingAppVO> pages = distrilbutionBillLadingService.pageListApp(Condition.getPage(query), distrilbutionBillLading); return R.data(pages); } + @GetMapping("/orderList") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "订单列表", notes = "传入stockupDTO") + public R<DistrilbutionAppBillLadingOrderMainVO> orderList(@ApiIgnore @RequestParam Map<String, Object> distrilbutionBillLading) { + Integer orderStatus = (Integer) distrilbutionBillLading.get("orderStatus");//订单状态 + Long billLadingId = (Long) distrilbutionBillLading.get("billLadingId");//自提单id + DistrilbutionAppBillLadingOrderMainVO vo = distrilbutionBillLadingService.selectOrderList(billLadingId,orderStatus); + return R.data(vo); + } + @GetMapping("/detailList") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "包件列表", notes = "传入stockupDTO") + public R<DistrilbutionBillLadingAppVO> detailList(@ApiIgnore @RequestParam Map<String, Object> distrilbutionBillLading) { + Integer scanStatus = (Integer) distrilbutionBillLading.get("scanStatus");//扫描状态 + Long billLadingId = (Long) distrilbutionBillLading.get("billLadingId");//自提单id + String orderSelfNumbering = (String) distrilbutionBillLading.get("orderSelfNumbering");//自提单id + DistrilbutionBillLadingAppVO vo = distrilbutionBillLadingService.selectDetailList(billLadingId,scanStatus,orderSelfNumbering); + return R.data(vo); + } } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionBillLadingScanMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionBillLadingScanMapper.java new file mode 100644 index 000000000..56b9ad05d --- /dev/null +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionBillLadingScanMapper.java @@ -0,0 +1,9 @@ +package com.logpm.distribution.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.logpm.distribution.entity.DistributionBillLadingScanEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface DistributionBillLadingScanMapper extends BaseMapper<DistributionBillLadingScanEntity> { +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java index c4d18f334..9c0f58b72 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java @@ -18,13 +18,16 @@ package com.logpm.distribution.mapper; import com.logpm.distribution.dto.DistrilbutionBillLadingDTO; import com.logpm.distribution.entity.DistrilbutionBillLadingEntity; +import com.logpm.distribution.vo.DistrilbutionBillLadingAppVO; import com.logpm.distribution.vo.DistrilbutionBillLadingVO; import com.logpm.distribution.excel.DistrilbutionBillLadingExcel; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingDetailVO; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * 提货单 Mapper 接口 @@ -53,4 +56,10 @@ public interface DistrilbutionBillLadingMapper extends BaseMapper<DistrilbutionB List<DistrilbutionBillLadingExcel> exportDistrilbutionBillLading(@Param("ew") Wrapper<DistrilbutionBillLadingEntity> queryWrapper); IPage<DistrilbutionBillLadingVO> pageList(IPage<Object> page, @Param("param") DistrilbutionBillLadingDTO distrilbutionBillLadingDTO); + + IPage<DistrilbutionBillLadingAppVO> pageListApp(IPage<Object> page, @Param("param") Map<String, Object> distrilbutionBillLading); + + DistrilbutionBillLadingAppVO selectDataByBillLadingId(@Param("billLadingId") Long billLadingId); + + List<DistrilbutionAppBillLadingDetailVO> selectDetailList(@Param("stockArticleId") Long stockArticleId, @Param("scanStatus") Integer scanStatus,@Param("orderSelfNumbering") String orderSelfNumbering); } 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 18ee02b79..b6d7a0119 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 @@ -63,4 +63,60 @@ SELECT * FROM logpm_distrilbution_bill_lading ${ew.customSqlSegment} </select> + <select id="pageListApp" resultType="com.logpm.distribution.vo.DistrilbutionBillLadingAppVO"> + select 3 carType, + bl.`condition` `condition`, + bl.Pick_up_plate pickUpPlate, + bl.consignee consignee, + bl.create_time, + bl.pick_up_time, + bl.stock_article_id stockArticleId + from logpm_distrilbution_bill_lading bl + where bl.is_deleted = 0 + and DATE_FORMAT(bl.pick_up_time,'%Y-%m-%d') = #{param.pickUpTime} + </select> + + <select id="selectDataByBillLadingId" resultType="com.logpm.distribution.vo.DistrilbutionBillLadingAppVO"> + select 3 carType, + bl.`condition` `condition`, + bl.Pick_up_plate pickUpPlate, + bl.consignee consignee, + bl.create_time, + bl.pick_up_time, + bl.stock_article_id stockArticleId + from logpm_distrilbution_bill_lading bl + where bl.is_deleted = 0 + and bl.id = #{billLadingId} + </select> + + <select id="selectDetailList" resultType="com.logpm.distribution.vo.app.DistrilbutionAppBillLadingDetailVO"> + select pl.stock_article_id stockArticleId, + pl.order_self_numbering orderSelfNumbering, + pl.packet_bar_code packetBarCode, + case + when bls.id is null then 0 + else 1 + end scanStatus, + 0 errorStatus + from logpm_distribution_parcel_list pl + left join logpm_distribution_bill_lading_scan bls on bls.parcel_list_id = pl.id and sa.is_deleted = 0 + <where> + and pl.is_deleted = 0 + and pl.stock_article_id = #{stockArticleId} + <if test="orderSelfNumbering != null and orderSelfNumbering !=''"> + and pl.order_self_numbering like ${orderSelfNumbering} + </if> + <if test="scanStatus != null and scanStatus=0"> + and bls.id is null + </if> + <if test="scanStatus != null and scanStatus=1"> + and bls.id is not null + </if> + </where> + + where pl.is_deleted = 0 + and pl.stock_article_id = + and bls.id is null + </select> + </mapper> diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionBillLadingScanService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionBillLadingScanService.java new file mode 100644 index 000000000..840221394 --- /dev/null +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionBillLadingScanService.java @@ -0,0 +1,7 @@ +package com.logpm.distribution.service; + +import com.logpm.distribution.entity.DistributionBillLadingScanEntity; +import org.springblade.core.mp.base.BaseService; + +public interface IDistributionBillLadingScanService extends BaseService<DistributionBillLadingScanEntity> { +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java index a341c37f7..66255eb63 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java @@ -19,9 +19,11 @@ package com.logpm.distribution.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.logpm.distribution.dto.DistrilbutionBillLadingDTO; import com.logpm.distribution.entity.DistrilbutionBillLadingEntity; +import com.logpm.distribution.vo.DistrilbutionBillLadingAppVO; import com.logpm.distribution.vo.DistrilbutionBillLadingVO; import com.logpm.distribution.excel.DistrilbutionBillLadingExcel; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderMainVO; import org.springblade.core.mp.base.BaseService; import java.util.List; import java.util.Map; @@ -54,4 +56,12 @@ public interface IDistrilbutionBillLadingService extends BaseService<Distrilbuti Boolean ownSaveOrUpdate(DistrilbutionBillLadingDTO distrilbutionBillLading); IPage<DistrilbutionBillLadingVO> pageList(IPage<Object> page, Map<String, Object> distrilbutionBillLading); + + IPage<DistrilbutionBillLadingAppVO> pageListApp(IPage<Object> page, Map<String, Object> distrilbutionBillLading); + + + DistrilbutionAppBillLadingOrderMainVO selectOrderList(Long billLadingId, Integer orderStatus); + + DistrilbutionBillLadingAppVO selectDetailList(Long billLadingId, Integer scanStatus,String orderSelfNumbering); + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionBillLadingScanServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionBillLadingScanServiceImpl.java new file mode 100644 index 000000000..45415f0cc --- /dev/null +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionBillLadingScanServiceImpl.java @@ -0,0 +1,14 @@ +package com.logpm.distribution.service.impl; + +import com.logpm.distribution.entity.DistributionBillLadingScanEntity; +import com.logpm.distribution.mapper.DistributionBillLadingScanMapper; +import com.logpm.distribution.service.IDistributionBillLadingScanService; +import lombok.AllArgsConstructor; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; + +@Service +@AllArgsConstructor +public class DistributionBillLadingScanServiceImpl extends BaseServiceImpl<DistributionBillLadingScanMapper, DistributionBillLadingScanEntity> implements IDistributionBillLadingScanService { + +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java index 50ceee370..b25536dfe 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java @@ -16,30 +16,34 @@ */ package com.logpm.distribution.service.impl; -import cn.hutool.log.Log; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.logpm.distribution.dto.DistributionStockDTO; import com.logpm.distribution.dto.DistrilbutionBillLadingDTO; import com.logpm.distribution.entity.*; -import com.logpm.distribution.service.*; -import com.logpm.distribution.vo.DistrilbutionBillLadingVO; import com.logpm.distribution.excel.DistrilbutionBillLadingExcel; import com.logpm.distribution.mapper.DistrilbutionBillLadingMapper; +import com.logpm.distribution.service.*; +import com.logpm.distribution.vo.DistrilbutionBillLadingAppVO; +import com.logpm.distribution.vo.DistrilbutionBillLadingVO; +import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingDetailVO; +import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderMainVO; +import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderVO; import lombok.AllArgsConstructor; -import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.utils.StringUtil; +import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; +import java.util.Objects; /** * 提货单 服务实现类 @@ -59,6 +63,10 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb private final IDistributionStockArticleService distributionStockArticleService; + private final IDistributionParcelListService distributionParcelListService; + + private final IDistributionBillLadingScanService distributionBillLadingScanService; + @Override public IPage<DistrilbutionBillLadingVO> selectDistrilbutionBillLadingPage(IPage<DistrilbutionBillLadingVO> page, DistrilbutionBillLadingVO distrilbutionBillLading) { @@ -218,4 +226,173 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb return distributionPrintService.saveBatch(list2); } + + @Override + public IPage<DistrilbutionBillLadingAppVO> pageListApp(IPage<Object> page, Map<String, Object> distrilbutionBillLading) { + IPage<DistrilbutionBillLadingAppVO> pageList = baseMapper.pageListApp(page, distrilbutionBillLading); + List<DistrilbutionBillLadingAppVO> records = pageList.getRecords(); + for (DistrilbutionBillLadingAppVO vo:records){ + //有可能存在多个订单所以需要拆分 + String stockArticleId = vo.getStockArticleId(); + + Integer orderNum = 0; + Integer planNum = 0; + Integer signedNum = 0; + String[] split = stockArticleId.split(","); + for (String s:split){ + if(StringUtil.isBlank(s)){ + continue; + } + orderNum++; + QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("stock_article_id",Long.parseLong(s)) + .eq("is_deleted",0); + List<DistributionParcelListEntity> list = distributionParcelListService.list(queryWrapper); + int pn = list.size(); + planNum = planNum + pn; + //通过订单id查询扫描表中有多少数据 + QueryWrapper<DistributionBillLadingScanEntity> qw = new QueryWrapper<>(); + qw.eq("stock_article_id",Long.parseLong(s)) + .eq("is_deleted",0); + List<DistributionBillLadingScanEntity> ls = distributionBillLadingScanService.list(qw); + int sn = ls.size(); + signedNum = signedNum +sn; + } + vo.setOrderNum(orderNum); + vo.setPlanNum(planNum); + vo.setSignedNum(signedNum); + } + + pageList.setRecords(records); + return pageList; + } + + @Override + public DistrilbutionAppBillLadingOrderMainVO selectOrderList(Long billLadingId, Integer orderStatus) { + DistrilbutionBillLadingAppVO main = baseMapper.selectDataByBillLadingId(billLadingId); + if(Objects.isNull(main)){ + return null; + } + + //有可能存在多个订单所以需要拆分 + String stockArticleId = main.getStockArticleId(); + + Integer orderNum = 0; + Integer planNum = 0; + Integer conpleteNum = 0; + Integer signedNum = 0; + String[] split = stockArticleId.split(","); + + List<DistrilbutionAppBillLadingOrderVO> l = new ArrayList<>(); + for (String s:split){ + if(StringUtil.isBlank(s)){ + continue; + } + DistrilbutionAppBillLadingOrderVO vo = new DistrilbutionAppBillLadingOrderVO(); + vo.setStockArticleId(Long.parseLong(s)); + + + orderNum++; + QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("stock_article_id",Long.parseLong(s)) + .eq("is_deleted",0); + List<DistributionParcelListEntity> list = distributionParcelListService.list(queryWrapper); + vo.setOrderSelfNumbering(list.get(0).getOrderSelfNumbering()); + int pn = list.size(); + vo.setPlanNum(pn); + planNum = planNum + pn; + //通过订单id查询扫描表中有多少数据 + QueryWrapper<DistributionBillLadingScanEntity> qw = new QueryWrapper<>(); + qw.eq("stock_article_id",Long.parseLong(s)) + .eq("is_deleted",0); + List<DistributionBillLadingScanEntity> ls = distributionBillLadingScanService.list(qw); + int sn = ls.size(); + vo.setSignedNum(sn); + signedNum = signedNum +sn; + + if(pn == sn){ + conpleteNum++; + } + + //0 全部 1 齐套 2部分扫 3未扫 + if(orderStatus == 0){ + l.add(vo); + }else if(orderStatus == 1){ + if(pn == sn){ + l.add(vo); + } + }else if(orderStatus == 2){ + if(sn<pn){ + l.add(vo); + } + }else if(orderStatus == 3){ + if(sn == 0){ + l.add(vo); + } + } + } + DistrilbutionAppBillLadingOrderMainVO mainVO = new DistrilbutionAppBillLadingOrderMainVO(); + mainVO.setOrderNum(orderNum); + mainVO.setPlanNum(planNum); + mainVO.setSignedNum(signedNum); + mainVO.setCompleteNum(conpleteNum); + mainVO.setList(l); + return mainVO; + } + + @Override + public DistrilbutionBillLadingAppVO selectDetailList(Long billLadingId, Integer scanStatus,String orderSelfNumbering) { + DistrilbutionBillLadingAppVO main = baseMapper.selectDataByBillLadingId(billLadingId); + if(Objects.isNull(main)){ + return null; + } + + //有可能存在多个订单所以需要拆分 + String stockArticleId = main.getStockArticleId(); + List<DistrilbutionAppBillLadingDetailVO> dls = main.getList(); + Integer orderNum = 0; + Integer planNum = 0; + Integer conpleteNum = 0; + Integer signedNum = 0; + String[] split = stockArticleId.split(","); + + for (String s:split){ + if(StringUtil.isBlank(s)){ + continue; + } + + //查询所有的包件列表并且附带状态 + List<DistrilbutionAppBillLadingDetailVO> details = baseMapper.selectDetailList(Long.parseLong(s),scanStatus,"%"+orderSelfNumbering+"%"); + dls.addAll(details); + + orderNum++; + QueryWrapper<DistributionParcelListEntity> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("stock_article_id",Long.parseLong(s)) + .eq("is_deleted",0); + List<DistributionParcelListEntity> list = distributionParcelListService.list(queryWrapper); + int pn = list.size(); + planNum = planNum + pn; + //通过订单id查询扫描表中有多少数据 + QueryWrapper<DistributionBillLadingScanEntity> qw = new QueryWrapper<>(); + qw.eq("stock_article_id",Long.parseLong(s)) + .eq("is_deleted",0); + List<DistributionBillLadingScanEntity> ls = distributionBillLadingScanService.list(qw); + int sn = ls.size(); + signedNum = signedNum +sn; + + if(pn == sn){ + conpleteNum++; + } + } + main.setCompleteNum(conpleteNum); + main.setOrderNum(orderNum); + main.setSignedNum(signedNum); + main.setPlanNum(planNum); + main.setList(dls); + + + return main; + } + + }