diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/DictBizConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/DictBizConstant.java index 193aaacfc..038996aee 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/DictBizConstant.java +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/DictBizConstant.java @@ -18,6 +18,7 @@ public class DictBizConstant { public static final String ORDER_STOCKUP_STATUS = "order_stockup_status";//订单备货状态 public static final String ORDER_RESERVATION_STATUS = "order_reservation_status";//订单预约状态 public static final String RESERVATION_STATUS = "reservation_status";//预约状态 + public static final String WORK_ORDER_STATUS = "work_order_status";//异常工单状态 public static final String ORDER_PACKAGE_STATUS = "order_package_status";//配送包件状态 diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/aftersales/WorkOrderStatusConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/aftersales/WorkOrderStatusConstant.java new file mode 100644 index 000000000..47350391c --- /dev/null +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/aftersales/WorkOrderStatusConstant.java @@ -0,0 +1,45 @@ +package org.springblade.common.constant.aftersales; + +public enum WorkOrderStatusConstant { + + daichuli("待处理","10"), + yichuli("已处理","30"), + chulizhong("处理中","20"), + daishenhe("待审核","40"), + yishenhe("已审核","50"); + + + /** + * 状态 + */ + private String name; + + /** + * 值 + */ + private String value; + + + private WorkOrderStatusConstant(String name, String value) { + this.name = name; + this.value = value; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + +} diff --git a/blade-biz-common/src/main/java/org/springblade/common/utils/FileUtil.java b/blade-biz-common/src/main/java/org/springblade/common/utils/FileUtil.java index ad1b60c30..964758b6b 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/utils/FileUtil.java +++ b/blade-biz-common/src/main/java/org/springblade/common/utils/FileUtil.java @@ -1,8 +1,19 @@ package org.springblade.common.utils; -import java.io.File; +import org.springblade.common.constant.CommonConstant; + +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.lang.reflect.Type; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLConnection; import java.util.List; import java.util.TimerTask; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +import static io.undertow.servlet.core.BlockingWriterSenderImpl.BUFFER_SIZE; /** * 文件工具类 @@ -18,13 +29,195 @@ public class FileUtil extends TimerTask { this.LocalTempFiles = list; } + public static File checkZipFile(String reservationCode) { + String savePath = "D:/Test" +"/"+ reservationCode; + + return new File(savePath+".zip"); + } + + @Override public void run() { for (String localTempFile : LocalTempFiles) { File file = new File(localTempFile); - if (file.isFile()){ + if (file.isFile()) { file.delete(); } } } + + + /** + * 处理签收图片 + * + * @param urls + * @param type 托盘类型 + * @param code 预约编码 + * @param consignee 客户名称 + */ + public static void handleSignPictureZip(List urls, String type, String code, String consignee) { + //将图片下载至本地中 +// String imgPath = CommonConstant.SYSTEMFILEPATH; + String savePath = "D:/Test" +"/"+ code; + String imgPath = savePath; + + // 打开连接 + //设置请求超时为20s + switch (type) { + case "photo_1": + //上门 + imgPath += "\\door"; + break; + case "photo_2": + imgPath += "\\stacking"; + //堆码 + break; + case "photo_3": + imgPath +="\\friability"; + //易碎 + break; + case "photo_4": + imgPath +="\\home-delivery"; + //家配 + break; + case "photo_5": + imgPath +="\\signing"; + //签收 + break; + } + + for (String imgUrl : urls) { + String str = imgUrl.substring(imgUrl.lastIndexOf("/")+1, imgUrl.length()); + try { + //下载远程地址图片 + download(imgUrl, imgPath, str); + //将该客户的签收图片进行ZIP压缩 + + //读取该文件路径下的文件夹 + File file = new File(savePath); + fileToZip(file); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + } + + + + /** + * sourceFile一定要是文件夹 + * 默认会在同目录下生成zip文件 + * + * @param sourceFile + * @throws Exception + */ + public static void fileToZip(File sourceFile) throws Exception { + + if (!sourceFile.exists()) { + throw new RuntimeException("不存在"); + } + if (!sourceFile.isDirectory()) { + throw new RuntimeException("不是文件夹"); + } + //zip文件生成位置 + File zipFile = new File(sourceFile.getAbsolutePath() + ".zip"); + FileOutputStream fos = new FileOutputStream(zipFile); + ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(fos)); + fileToZip(zos, sourceFile, ""); + zos.close(); + fos.close(); + + } + + private static void fileToZip(ZipOutputStream zos, File sourceFile, String path) throws Exception { + + System.out.println(sourceFile.getAbsolutePath()); + + //如果是文件夹只创建zip实体即可,如果是文件,创建zip实体后还要读取文件内容并写入 + if (sourceFile.isDirectory()) { + path = path + sourceFile.getName() + "/"; + ZipEntry zipEntry = new ZipEntry(path); + zos.putNextEntry(zipEntry); + for (File file : sourceFile.listFiles()) { + fileToZip(zos, file, path); + } + } else { + //创建ZIP实体,并添加进压缩包 + ZipEntry zipEntry = new ZipEntry(path + sourceFile.getName()); + zos.putNextEntry(zipEntry); + byte[] bufs = new byte[1024 * 10]; + //读取待压缩的文件并写进压缩包里 + FileInputStream fis = new FileInputStream(sourceFile); + BufferedInputStream bis = new BufferedInputStream(fis, 1024 * 10); + int read = 0; + while ((read = bis.read(bufs, 0, 1024 * 10)) != -1) { + zos.write(bufs, 0, read); + } + bis.close(); + fis.close(); + } + } + + private static void download(String imgUrl, String imgPath, String str) throws IOException { + URL url = new URL(imgUrl); + URLConnection con = url.openConnection(); + con.setConnectTimeout(20 * 1000); + //文件路径不存在 则创建 + File sf = new File(imgPath); + if (!sf.exists()) { + sf.mkdirs(); + } + //jdk 1.7 新特性自动关闭 + InputStream in = con.getInputStream(); + OutputStream out = new FileOutputStream(sf.getPath() + "\\" + str); + //创建缓冲区 + byte[] buff = new byte[1024]; + int n; + // 开始读取 + while ((n = in.read(buff)) >= 0) { + out.write(buff, 0, n); + } + } + + +// /** +// * 文件下载到指定路径 +// * +// * @param urlString 链接 +// * @param savePath 保存路径 +// * @param filename 文件名 +// * @throws Exception +// */ +// public static void download(String urlString, String savePath, String filename, String code) throws IOException, MalformedURLException { +// // 构造URL +//// String imgPath = CommonConstant.SYSTEMFILEPATH; +// +// //将图片下载至本地中 +// String imgPath = "D:\\Test" + code; +// URL url = new URL(urlString); +// // 打开连接 +// URLConnection con = url.openConnection(); +// //设置请求超时为20s +// con.setConnectTimeout(20 * 1000); +// //文件路径不存在 则创建 +// File sf = new File(savePath); +// if (!sf.exists()) { +// sf.mkdirs(); +// } +// //jdk 1.7 新特性自动关闭 +// try (InputStream in = con.getInputStream(); +// OutputStream out = new FileOutputStream(sf.getPath() + "\\" + str)) { +// //创建缓冲区 +// byte[] buff = new byte[1024]; +// int n; +// // 开始读取 +// while ((n = in.read(buff)) >= 0) { +// out.write(buff, 0, n); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } + } diff --git a/blade-gateway/src/main/resources/bootstrap.yml b/blade-gateway/src/main/resources/bootstrap.yml index 90dc6404a..7dae160ba 100644 --- a/blade-gateway/src/main/resources/bootstrap.yml +++ b/blade-gateway/src/main/resources/bootstrap.yml @@ -1,5 +1,8 @@ server: port: 13000 + + + spring: cloud: gateway: diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesProcessorEntity.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesProcessorEntity.java index 7d043fffc..449822710 100644 --- a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesProcessorEntity.java +++ b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesProcessorEntity.java @@ -77,12 +77,12 @@ public class AftersalesProcessorEntity extends TenantEntity { @ApiModelProperty(value = "异常工单ID") private Long workOrderId; /** - * 状态 + * 状态 状态 1正常 2新增 3取消 */ @ApiModelProperty(value = "状态") private String conditions; /** - * 类型 + * 类型 类型 1 责任方 2 处理方 */ @ApiModelProperty(value = "类型") private String typesOf; diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesReturnRecordEntity.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesReturnRecordEntity.java index 4f1882bf3..92d5dfb30 100644 --- a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesReturnRecordEntity.java +++ b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesReturnRecordEntity.java @@ -65,12 +65,12 @@ public class AftersalesReturnRecordEntity extends TenantEntity { * 异常工单ID */ @ApiModelProperty(value = "异常工单ID") - private String workOrderId; + private Long workOrderId; /** * 待处理营业部ID */ @ApiModelProperty(value = "待处理营业部ID") - private String businessId; + private Long businessId; /** * 待处理营业部名称 */ @@ -85,6 +85,6 @@ public class AftersalesReturnRecordEntity extends TenantEntity { * 仓库Id */ @ApiModelProperty(value = "仓库Id") - private String warehouseId; + private Long warehouseId; } diff --git a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataGoodsShelfClient.java b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataGoodsShelfClient.java index 391f09343..4540d9c5d 100644 --- a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataGoodsShelfClient.java +++ b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/feign/IBasicdataGoodsShelfClient.java @@ -55,4 +55,6 @@ public interface IBasicdataGoodsShelfClient { @GetMapping(API_PREFIX+"/getEntityById") BasicdataGoodsShelfEntity getEntityByGoodsShelfId(@RequestParam("goodsShelfId") Long goodsShelfId); + @GetMapping(API_PREFIX+"/updateRowAndFloorByShelfId") + void updateRowAndFloorByShelfId(@RequestParam int maxFloor, @RequestParam int maxRow, @RequestParam Long newShelfId); } diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DisStockOrdercodeRecoEntity.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DisStockOrdercodeRecoEntity.java index c3be2925c..b6556d0ac 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DisStockOrdercodeRecoEntity.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DisStockOrdercodeRecoEntity.java @@ -50,6 +50,10 @@ public class DisStockOrdercodeRecoEntity extends TenantEntity { */ @ApiModelProperty(value = "码值类型 1 库存品明细") private String codeType; + + + @ApiModelProperty(value = "库存品ID") + private Long stockListId; /** * 预留1 */ diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java index a1c46e492..0e2a5750b 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionParcelListEntity.java @@ -78,7 +78,7 @@ public class DistributionParcelListEntity extends TenantEntity { @ApiModelProperty(value = "仓库ID") private Long warehouseId; /** - * 状态 + * 包件类型 1 定制品 2 库存品 3零担 */ @ApiModelProperty(value = "状态") private Integer conditions; diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionSignforEntity.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionSignforEntity.java index 29c8f483f..69ab12eae 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionSignforEntity.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionSignforEntity.java @@ -292,6 +292,18 @@ public class DistributionSignforEntity extends TenantEntity { @ApiModelProperty(value = "是否有异常装车包件 1-否 2-是") private Integer isHaveAbnormalPackage; + /** + * 审核人Id + */ + @ApiModelProperty(value = "审核人Id") + private Long examineUserId; + + /** + * 审核人名称 + */ + @ApiModelProperty(value = "审核人名称") + private String examineUserName; + } diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java index 6b56d4cd6..7777a5ce2 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java @@ -43,11 +43,16 @@ public interface IDistributionParcelListClient { String API_PREFIX = "/client"; String TOP = API_PREFIX + "/top1"; String TOPPARCELLIST = API_PREFIX + "/getParcelList"; + String GETPARCELLISTID = API_PREFIX + "/getParcelListId"; String GETPARCELLISTINFO = API_PREFIX + "/getParcelListInfo"; @PostMapping(TOPPARCELLIST) List getParcelList(@RequestBody DistributionParcelListEntity parcelListEntity); + + @GetMapping(GETPARCELLISTID) + DistributionParcelListEntity getParcelListId(@RequestParam String id); + /** * 获取在库订单包件清单列表 * diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionSignPrintVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionSignPrintVO.java index 636332837..327570cc0 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionSignPrintVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionSignPrintVO.java @@ -30,6 +30,7 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = true) public class DistributionSignPrintVO extends DistributionSignPrintEntity { + private static final long serialVersionUID = 1L; } diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionSigndetailVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionSigndetailVO.java index 86849b643..94eb40336 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionSigndetailVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionSigndetailVO.java @@ -126,6 +126,22 @@ public class DistributionSigndetailVO extends DistributionSigndetailEntity { // @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private String sjsigningTime; + @ApiModelProperty(value = "审核人名称") +// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private String examineUserName; + + @ApiModelProperty(value = "审核人Id") +// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private String examineUserId; + + @ApiModelProperty(value = "审核人Id") +// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private String signeeName; + + @ApiModelProperty(value = "审核人Id") +// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Long signeeId; + /** * 包条信息 */ diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionSignforVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionSignforVO.java index 4ad899e33..aadf7ea49 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionSignforVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionSignforVO.java @@ -146,6 +146,12 @@ public class DistributionSignforVO extends DistributionSignforEntity { @ApiModelProperty(value = "配送司机") private String driverName; + /** + * 配送司机 + */ + @ApiModelProperty(value = "配送司机") + private String driverPhone; + /** * 装车班组 */ @@ -155,7 +161,39 @@ public class DistributionSignforVO extends DistributionSignforEntity { * 配车时间 */ @ApiModelProperty(value = "配车时间") - private Date taskTime; + private String taskTime; + + /** + * 装车时间 + */ + @ApiModelProperty(value = "装车时间") + private String signLoadingDate; + + /** + * 装车时间(区间) + */ + @ApiModelProperty(value = "装车时间(区间)") + private List taskTimeSection; + + + /** + * 装车时间(区间) + */ + @ApiModelProperty(value = "装车时间(区间)") + private List loadingTimeSection; + + /** + * 司机签收(区间) + */ + @ApiModelProperty(value = "司机签收(区间)") + private List sjsigningTimeSection; + + /** + * 文员审核(区间) + */ + @ApiModelProperty(value = "文员审核(区间)") + private List signingTimeSection; + /** * 卸车班组 diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockArticleVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockArticleVO.java index 4fc965798..19ca855a8 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockArticleVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockArticleVO.java @@ -133,7 +133,14 @@ public class DistributionStockArticleVO extends DistributionStockArticleEntity { * 装车数量 */ @ApiModelProperty(value = "装车数量") - private String loadingNumber; + private Integer loadingNumber; + + /** + * 签收数量 + */ + @ApiModelProperty(value = "签收数量") + private Integer signingNumber; + /** * 备货数量 */ diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupStockListInfoVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupStockListInfoVO.java index 07420b7f9..556a714ed 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupStockListInfoVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupStockListInfoVO.java @@ -11,7 +11,7 @@ public class DistributionStockupStockListInfoVO implements Serializable { private Long reservationId;//预约单id - private Long stockListId;//库存品id + private Long stockListId;//库存品id private String customer;//客户 private String deliveryAddress;//地址 diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupStockListVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupStockListVO.java index 3c08cc57e..a06fb4ee9 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupStockListVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupStockListVO.java @@ -3,6 +3,8 @@ package com.logpm.distribution.vo; import lombok.Data; import java.io.Serializable; +import java.util.List; +import java.util.Map; @Data public class DistributionStockupStockListVO implements Serializable { @@ -22,6 +24,11 @@ public class DistributionStockupStockListVO implements Serializable { private Integer planNum;//计划数量 + /** + * 物品编码 + */ + private String cargoNumber; + private String cargoUnit;//单位 private Integer realNum;//实际数量 @@ -34,4 +41,12 @@ public class DistributionStockupStockListVO implements Serializable { private Integer unpack;//是否拆包 0 没有 1 拆了 private String sourceType;//是否拆包 1 订单 2导入 + // 货位ID 集合 + private String allocations; + + /** + * 货位信息集合 + */ + private List> allocationList; + } diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupTrayVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupTrayVO.java index 4bb93619c..896b53719 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupTrayVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockupTrayVO.java @@ -3,6 +3,7 @@ package com.logpm.distribution.vo; import lombok.Data; import java.io.Serializable; +import java.util.Date; /** * @program: LogisticsPlatform-Service @@ -18,5 +19,7 @@ public class DistributionStockupTrayVO implements Serializable { private String allocationId; // 包件编码 private String allocationTitle; // 包件编码 private String num; // 包件编码 + private String warehousingTime; // 入库时间 + private Date createTime; // 入库时间 } diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/WarehouseUpdownGoodsEntity.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/WarehouseUpdownGoodsEntity.java index f78242bb3..487e1ee08 100644 --- a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/WarehouseUpdownGoodsEntity.java +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/WarehouseUpdownGoodsEntity.java @@ -62,7 +62,7 @@ public class WarehouseUpdownGoodsEntity extends TenantEntity { @ApiModelProperty(name = "关联值",notes = "") private String associationValue ; /** 关联类型;1.订单号 2运单号 3包件码 */ - @ApiModelProperty(name = "关联类型",notes = "1.订单号 2运单号 3包件码") + @ApiModelProperty(name = "关联类型",notes = "1.订单号 2运单号 3包件码 4库存品") private String associationType ; /** 货物名称 */ @ApiModelProperty(name = "货物名称",notes = "") diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseGoodsAllocationClient.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseGoodsAllocationClient.java index 5b09bdacb..67d73ee3a 100644 --- a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseGoodsAllocationClient.java +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseGoodsAllocationClient.java @@ -23,6 +23,8 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; +import java.util.List; + /** * 货位 Feign接口类 * @@ -52,4 +54,12 @@ public interface IWarehouseGoodsAllocationClient { @GetMapping(TOP+ "/updateAllocationCache") Boolean updateAllocationCache(@RequestParam("ids") String ids); + + /** + * 跟新货位缓存 + */ + @GetMapping(TOP+ "/getAllocationInforByIds") + List getAllocationInforByIds(@RequestParam("ids") String [] ids); + + } diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseUpdownTypeClient.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseUpdownTypeClient.java index 36c28a26a..e512d6707 100644 --- a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseUpdownTypeClient.java +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseUpdownTypeClient.java @@ -65,4 +65,8 @@ public interface IWarehouseUpdownTypeClient { @GetMapping(TOP + "/upShelfPackage") boolean upShelfPackage(@RequestParam String orderPackageCode, @RequestParam Long locationId, @RequestParam Long warehouseId); + @GetMapping(TOP + "/findUpdownTypeInforByAllocationId") + R findUpdownTypeInforByAllocationId(@RequestParam Long allocationId, @RequestParam Long warehouseId); + @GetMapping(TOP + "/findAllGoodsByAllocationId") + R findAllGoodsByAllocationId(@RequestParam Long allocationId, @RequestParam Long warehouseId); } diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/QuestContrastVO.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/QuestContrastVO.java index bd90a2398..f0b3cf970 100644 --- a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/QuestContrastVO.java +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/QuestContrastVO.java @@ -62,6 +62,11 @@ public class QuestContrastVO { * 盘点时间 */ private Date updateTime; + + /** + * 盘点时间 + */ + private String updateTimes; /** * 盘点数据 */ diff --git a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskPackagelistVO.java b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskPackagelistVO.java index 8acb32c29..a12a193dd 100644 --- a/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskPackagelistVO.java +++ b/blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/vo/TaskPackagelistVO.java @@ -10,6 +10,12 @@ import java.util.List; @Data public class TaskPackagelistVO { + /** + * id + */ + @ApiModelProperty(value = "Id") + private Long id; + /** * 订单自编号 */ diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesArbitrationOrderController.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesArbitrationOrderController.java index 9cd6c4364..81eab3436 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesArbitrationOrderController.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesArbitrationOrderController.java @@ -121,6 +121,16 @@ public class AftersalesArbitrationOrderController extends BladeController { return R.status(aftersalesArbitrationOrderService.saveOrUpdate(aftersalesArbitrationOrder)); } + /** + * 异常工单仲裁申请单 批量转异常 + */ + @PostMapping("/batchArbitrationOrder") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "新增或修改", notes = "传入aftersalesArbitrationOrder") + public R batchArbitrationOrder(@Valid @RequestBody List aftersalesArbitrationOrder) { + return R.status(aftersalesArbitrationOrderService.batchArbitrationOrder(aftersalesArbitrationOrder)); + } + /** * 异常工单仲裁申请单 删除 */ diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesExchangeController.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesExchangeController.java index 63d01e796..615b67d3b 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesExchangeController.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesExchangeController.java @@ -80,6 +80,18 @@ public class AftersalesExchangeController extends BladeController { return R.data(AftersalesExchangeWrapper.build().pageVO(pages)); } + + /** + * 工单交流处理数据记录 分页 + */ + @GetMapping("/exchangeList") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "分页", notes = "传入aftersalesExchange") + public R> getExchangeList(@ApiIgnore @RequestParam Map aftersalesExchange, Query query) { + List pages = aftersalesExchangeService.getExchangeList( aftersalesExchange); + return R.data(AftersalesExchangeWrapper.build().listVO(pages)); + } + /** * 工单交流处理数据记录 自定义分页 */ diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesProcessingResultsController.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesProcessingResultsController.java index 5ec410391..9e19101d7 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesProcessingResultsController.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesProcessingResultsController.java @@ -118,7 +118,7 @@ public class AftersalesProcessingResultsController extends BladeController { @ApiOperationSupport(order = 6) @ApiOperation(value = "新增或修改", notes = "传入aftersalesProcessingResults") public R submit(@Valid @RequestBody AftersalesProcessingResultsEntity aftersalesProcessingResults) { - return R.status(aftersalesProcessingResultsService.saveOrUpdate(aftersalesProcessingResults)); + return R.status(aftersalesProcessingResultsService.ownSaveOrUpdate(aftersalesProcessingResults)); } /** diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesReturnRecordController.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesReturnRecordController.java index 3bcb4cbe7..e8a501600 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesReturnRecordController.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesReturnRecordController.java @@ -118,7 +118,17 @@ public class AftersalesReturnRecordController extends BladeController { @ApiOperationSupport(order = 6) @ApiOperation(value = "新增或修改", notes = "传入aftersalesReturnRecord") public R submit(@Valid @RequestBody AftersalesReturnRecordEntity aftersalesReturnRecord) { - return R.status(aftersalesReturnRecordService.saveOrUpdate(aftersalesReturnRecord)); + return R.status(aftersalesReturnRecordService.ownSaveOrUpdate(aftersalesReturnRecord)); + } + + /** + * 异常 工单打回记录 批量打回 + */ + @PostMapping("/batchRepulse") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "新增或修改", notes = "传入aftersalesReturnRecord") + public R batchRepulse(@Valid @RequestBody List aftersalesReturnRecord) { + return R.status(aftersalesReturnRecordService.batchRepulse(aftersalesReturnRecord)); } /** diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesWorkOrderController.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesWorkOrderController.java index 4e2ba919e..b93ca2c2a 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesWorkOrderController.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesWorkOrderController.java @@ -112,6 +112,18 @@ public class AftersalesWorkOrderController extends BladeController { return R.status(aftersalesWorkOrderService.save(aftersalesWorkOrder)); } + + /** + * 客服异常工单 完结处理熟练 + */ + @PostMapping("/addCompletionEnd") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入aftersalesWorkOrder") + public R addCompletionEnd(@Valid @RequestBody List aftersalesWorkOrder) { + + return R.status(aftersalesWorkOrderService.addCompletionEnd(aftersalesWorkOrder)); + } + /** * 客服异常工单 修改 */ diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AftersalesWorkOrderDTO.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AftersalesWorkOrderDTO.java index b185efcea..2ba5180cc 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AftersalesWorkOrderDTO.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AftersalesWorkOrderDTO.java @@ -36,15 +36,36 @@ public class AftersalesWorkOrderDTO extends AftersalesWorkOrderEntity { * 包件 */ private List packageEntityList; + /** + * 清除的ID包件 + */ + private List unPpackageEntityList; /** * 责任方和处理方 */ private List processorEntityList; + /** + * 取消的 责任方和处理方 + */ + private List unProcessorEntityList; /** * 货损图片 */ private List decreaseImageEntityList; + /** + * 取消的货损图片 + */ + private List unDecreaseImageEntityList; + /** + * 异常工单完结处理结果受款方 + */ + private List completionRecipientEntities; + + /** + * 异常工单完结处理结果赔款方 + */ + private List completionRecordEntities; } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesArbitrationOrderService.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesArbitrationOrderService.java index 54d383e24..6bdf4bb61 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesArbitrationOrderService.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesArbitrationOrderService.java @@ -49,4 +49,10 @@ public interface IAftersalesArbitrationOrderService extends BaseService exportAftersalesArbitrationOrder(Wrapper queryWrapper); + /** + * 批量申请介入 + * @param aftersalesArbitrationOrder + * @return + */ + boolean batchArbitrationOrder(List aftersalesArbitrationOrder); } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesExchangeService.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesExchangeService.java index c23d2fe4e..1536ae265 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesExchangeService.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesExchangeService.java @@ -23,6 +23,7 @@ import com.logpm.aftersales.excel.AftersalesExchangeExcel; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import java.util.List; +import java.util.Map; /** * 工单交流处理数据记录 服务类 @@ -55,4 +56,11 @@ public interface IAftersalesExchangeService extends BaseService getExchangeList(Map aftersalesExchange); } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesProcessingResultsService.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesProcessingResultsService.java index 381aaea9d..175aa95e0 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesProcessingResultsService.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesProcessingResultsService.java @@ -49,4 +49,10 @@ public interface IAftersalesProcessingResultsService extends BaseService exportAftersalesProcessingResults(Wrapper queryWrapper); + /** + * 添加或修改出来结果 + * @param aftersalesProcessingResults + * @return + */ + boolean ownSaveOrUpdate(AftersalesProcessingResultsEntity aftersalesProcessingResults); } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesReturnRecordService.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesReturnRecordService.java index b447d132b..baeab2e5e 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesReturnRecordService.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesReturnRecordService.java @@ -49,4 +49,17 @@ public interface IAftersalesReturnRecordService extends BaseService exportAftersalesReturnRecord(Wrapper queryWrapper); + /** + * 添加或修改数据 + * @param aftersalesReturnRecord + * @return + */ + boolean ownSaveOrUpdate(AftersalesReturnRecordEntity aftersalesReturnRecord); + + /** + * 添加批量打回 + * @param aftersalesReturnRecord + * @return + */ + boolean batchRepulse(List aftersalesReturnRecord); } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesWorkOrderService.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesWorkOrderService.java index 09a5dc6b3..f21ee8adf 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesWorkOrderService.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesWorkOrderService.java @@ -64,4 +64,11 @@ public interface IAftersalesWorkOrderService extends BaseService getPendingWorkOrder(AftersalesWorkOrderDTO aftersalesWorkOrder, IPage page); + + /** + * 完结异常工单 + * @param aftersalesWorkOrder + * @return + */ + boolean addCompletionEnd(List aftersalesWorkOrder); } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesArbitrationOrderServiceImpl.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesArbitrationOrderServiceImpl.java index 73a57b3d7..000e1b177 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesArbitrationOrderServiceImpl.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesArbitrationOrderServiceImpl.java @@ -16,6 +16,7 @@ */ package com.logpm.aftersales.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.logpm.aftersales.entity.AftersalesArbitrationOrderEntity; import com.logpm.aftersales.vo.AftersalesArbitrationOrderVO; import com.logpm.aftersales.excel.AftersalesArbitrationOrderExcel; @@ -51,4 +52,21 @@ public class AftersalesArbitrationOrderServiceImpl extends BaseServiceImpl aftersalesArbitrationOrder) { + + if(ObjectUtil.isNull(aftersalesArbitrationOrder)){ + return false; + } + aftersalesArbitrationOrder.forEach( i ->{ + baseMapper.insert(i); + }); + return true; + } + } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesExchangeServiceImpl.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesExchangeServiceImpl.java index ab56bb42d..0c698aebc 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesExchangeServiceImpl.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesExchangeServiceImpl.java @@ -16,16 +16,25 @@ */ package com.logpm.aftersales.service.impl; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.logpm.aftersales.entity.AftersalesExchangeEntity; import com.logpm.aftersales.vo.AftersalesExchangeVO; import com.logpm.aftersales.excel.AftersalesExchangeExcel; import com.logpm.aftersales.mapper.AftersalesExchangeMapper; import com.logpm.aftersales.service.IAftersalesExchangeService; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.AesUtil; 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 java.util.Date; import java.util.List; +import java.util.Map; /** * 工单交流处理数据记录 服务实现类 @@ -58,7 +67,36 @@ public class AftersalesExchangeServiceImpl extends BaseServiceImpl getExchangeList(Map aftersalesExchange) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(aftersalesExchange, AftersalesExchangeEntity.class); + + return baseMapper.selectList(queryWrapper); + } + } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesProcessingResultsServiceImpl.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesProcessingResultsServiceImpl.java index c58a13da8..b96fe8c85 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesProcessingResultsServiceImpl.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesProcessingResultsServiceImpl.java @@ -16,6 +16,7 @@ */ package com.logpm.aftersales.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.logpm.aftersales.entity.AftersalesProcessingResultsEntity; import com.logpm.aftersales.vo.AftersalesProcessingResultsVO; import com.logpm.aftersales.excel.AftersalesProcessingResultsExcel; @@ -51,4 +52,23 @@ public class AftersalesProcessingResultsServiceImpl extends BaseServiceImpl implements IAftersalesReturnRecordService { + + private final IAftersalesWorkOrderService aftersalesWorkOrderService; + @Override public IPage selectAftersalesReturnRecordPage(IPage page, AftersalesReturnRecordVO aftersalesReturnRecord) { return page.setRecords(baseMapper.selectAftersalesReturnRecordPage(page, aftersalesReturnRecord)); @@ -51,4 +62,51 @@ public class AftersalesReturnRecordServiceImpl extends BaseServiceImpl aftersalesReturnRecord) { + if(ObjectUtil.isNull(aftersalesReturnRecord)){ + aftersalesReturnRecord.forEach( i ->{ + //修改异常工单的状态 + AftersalesWorkOrderEntity workOrderEntity = new AftersalesWorkOrderVO(); + workOrderEntity.setId(i.getWorkOrderId()); + workOrderEntity.setWorkOrderStatus(WorkOrderStatusConstant.daichuli.getValue()); + aftersalesWorkOrderService.updateById(workOrderEntity); + //添加 + baseMapper.insert(i); + }); + return true; + } + return false; + } + } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesWorkOrderServiceImpl.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesWorkOrderServiceImpl.java index 2f59658db..14e561878 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesWorkOrderServiceImpl.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesWorkOrderServiceImpl.java @@ -16,25 +16,23 @@ */ package com.logpm.aftersales.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.logpm.aftersales.dto.AftersalesWorkOrderDTO; import com.logpm.aftersales.entity.AftersalesAbnormalPackageEntity; import com.logpm.aftersales.entity.AftersalesDecreaseImageEntity; import com.logpm.aftersales.entity.AftersalesProcessorEntity; import com.logpm.aftersales.entity.AftersalesWorkOrderEntity; -import com.logpm.aftersales.service.IAftersalesAbnormalPackageService; -import com.logpm.aftersales.service.IAftersalesDecreaseImageService; -import com.logpm.aftersales.service.IAftersalesProcessorService; +import com.logpm.aftersales.service.*; import com.logpm.aftersales.vo.AftersalesWorkOrderVO; import com.logpm.aftersales.excel.AftersalesWorkOrderExcel; import com.logpm.aftersales.mapper.AftersalesWorkOrderMapper; -import com.logpm.aftersales.service.IAftersalesWorkOrderService; import com.logpm.basicdata.entity.BasicdataWarehouseEntity; import com.logpm.basicdata.feign.IBasicdataWarehouseClient; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.aftersales.WorkOrderStatusConstant; import org.springblade.core.log.exception.ServiceException; -import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.BeanUtil; @@ -48,7 +46,6 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; -import java.util.logging.SimpleFormatter; /** * 客服异常工单 服务实现类 @@ -64,6 +61,8 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl list = new ArrayList<>(); - aftersalesWorkOrder.getPackageEntityList().stream().forEach(i ->{ - AftersalesAbnormalPackageEntity packageEntity = new AftersalesAbnormalPackageEntity(); - BeanUtil.copyProperties(i,packageEntity); - packageEntity.setWorkOrderId(aftersalesWorkOrder.getId()); - packageEntity.setWarehouseId(myCurrentWarehouse.getId()); - list.add(packageEntity); - }); - if(!list.isEmpty()){ - aftersalesAbnormalPackageService.saveBatch(list); - } - } - if(ObjectUtils.isNotNull(aftersalesWorkOrder.getDecreaseImageEntityList())){ - //货损图片 - List list = new ArrayList<>(); - aftersalesWorkOrder.getDecreaseImageEntityList().stream().forEach(i ->{ - AftersalesDecreaseImageEntity packageEntity = new AftersalesDecreaseImageEntity(); - BeanUtil.copyProperties(i,packageEntity); - packageEntity.setWorkOrderId(aftersalesWorkOrder.getId()); - packageEntity.setWarehouseId(myCurrentWarehouse.getId()); - list.add(packageEntity); - }); - if(!list.isEmpty()){ - aftersalesDecreaseImageService.saveBatch(list); - } + + }else{ + //修改 + if(ObjectUtil.isNotNull(aftersalesWorkOrder.getUnPpackageEntityList())){ + //删除修改包件 + aftersalesAbnormalPackageService.deleteLogic(aftersalesWorkOrder.getUnPpackageEntityList()); } - if(ObjectUtils.isNotNull(aftersalesWorkOrder.getProcessorEntityList())){ + if(ObjectUtil.isNotNull(aftersalesWorkOrder.getUnProcessorEntityList())){ //责任方 处理方 List list = new ArrayList<>(); - aftersalesWorkOrder.getProcessorEntityList().stream().forEach(i ->{ - AftersalesProcessorEntity packageEntity = new AftersalesProcessorEntity(); - BeanUtil.copyProperties(i,packageEntity); - packageEntity.setWorkOrderId(aftersalesWorkOrder.getId()); - packageEntity.setConditions("1");//正常 - packageEntity.setWarehouseId(myCurrentWarehouse.getId()); - list.add(packageEntity); + aftersalesWorkOrder.getUnProcessorEntityList().forEach(i ->{ + AftersalesProcessorEntity processorEntity = new AftersalesProcessorEntity(); + processorEntity.setId(i); + processorEntity.setConditions("3"); + list.add(processorEntity); }); if(!list.isEmpty()){ - aftersalesProcessorService.saveBatch(list); + aftersalesProcessorService.saveOrUpdateBatch(list); } } - return true; + if(ObjectUtil.isNotNull(aftersalesWorkOrder.getUnDecreaseImageEntityList())){ + //图片修改 + aftersalesDecreaseImageService.deleteLogic(aftersalesWorkOrder.getUnDecreaseImageEntityList()); + } + baseMapper.updateById(aftersalesWorkOrder); - }else{ - //修改 + } + //添加包件信息 + if(ObjectUtils.isNotNull(aftersalesWorkOrder.getPackageEntityList())){ + //包件信息 + List list = new ArrayList<>(); + aftersalesWorkOrder.getPackageEntityList().forEach(i ->{ + AftersalesAbnormalPackageEntity packageEntity = new AftersalesAbnormalPackageEntity(); + BeanUtil.copyProperties(i,packageEntity); + packageEntity.setWorkOrderId(aftersalesWorkOrder.getId()); + packageEntity.setWarehouseId(myCurrentWarehouse.getId()); + list.add(packageEntity); + }); + if(!list.isEmpty()){ + aftersalesAbnormalPackageService.saveBatch(list); + } + } + //添加责任方 处理方 + if(ObjectUtils.isNotNull(aftersalesWorkOrder.getProcessorEntityList())){ + //责任方 处理方 + List list = new ArrayList<>(); + aftersalesWorkOrder.getProcessorEntityList().forEach(i ->{ + AftersalesProcessorEntity packageEntity = new AftersalesProcessorEntity(); + BeanUtil.copyProperties(i,packageEntity); + packageEntity.setWorkOrderId(aftersalesWorkOrder.getId()); + packageEntity.setConditions("1");//正常 + packageEntity.setWarehouseId(myCurrentWarehouse.getId()); + list.add(packageEntity); + }); + if(!list.isEmpty()){ + aftersalesProcessorService.saveBatch(list); + } + } + //添加图片信息 + if(ObjectUtils.isNotNull(aftersalesWorkOrder.getDecreaseImageEntityList())){ + //货损图片 + List list = new ArrayList<>(); + aftersalesWorkOrder.getDecreaseImageEntityList().forEach(i ->{ + AftersalesDecreaseImageEntity packageEntity = new AftersalesDecreaseImageEntity(); + BeanUtil.copyProperties(i,packageEntity); + packageEntity.setWorkOrderId(aftersalesWorkOrder.getId()); + packageEntity.setWarehouseId(myCurrentWarehouse.getId()); + list.add(packageEntity); + }); + if(!list.isEmpty()){ + aftersalesDecreaseImageService.saveBatch(list); + } + } - return baseMapper.updateById(aftersalesWorkOrder) > 0 ? true : false; - } + return true; } /** @@ -192,4 +218,29 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl aftersalesWorkOrder) { + if(ObjectUtil.isNull(aftersalesWorkOrder)){ + return false; + } + aftersalesWorkOrder.forEach(v ->{ + if(ObjectUtils.isNull(v.getCompletionRecordEntities()) ){ + throw new ServiceException("赔款方数据不能为空"); + } + //添加赔付方信息 + completionRecordService.saveBatch(v.getCompletionRecordEntities()); + + //添加受款方信息,可以为空 + if(ObjectUtils.isNull(v.getCompletionRecipientEntities())){ + completionRecipientService.saveBatch(v.getCompletionRecipientEntities()); + } + }); + return true; + } + } diff --git a/blade-service/logpm-basic/src/main/java/com/logpm/basic/controller/BasicMaterialController.java b/blade-service/logpm-basic/src/main/java/com/logpm/basic/controller/BasicMaterialController.java index ccc81b333..bea029bf1 100644 --- a/blade-service/logpm-basic/src/main/java/com/logpm/basic/controller/BasicMaterialController.java +++ b/blade-service/logpm-basic/src/main/java/com/logpm/basic/controller/BasicMaterialController.java @@ -16,6 +16,7 @@ */ package com.logpm.basic.controller; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -106,6 +107,21 @@ public class BasicMaterialController extends BladeController { @ApiOperationSupport(order = 4) @ApiOperation(value = "新增", notes = "传入basicMaterial") public R save(@Valid @RequestBody BasicMaterialEntity basicMaterial) { + + if(ObjectUtil.isNull(basicMaterial)){ + log.info("物料添加失败!"); + return R.fail("添加失败,物料信息为空!"); + } + + if(ObjectUtil.isNull(basicMaterial.getName()) || ObjectUtil.isNull(basicMaterial.getProductCode()) || + ObjectUtil.isNull(basicMaterial.getPackageNum()) || ObjectUtil.isNull(basicMaterial.getPackageNum())|| + ObjectUtil.isNull(basicMaterial.getSku())|| ObjectUtil.isNull(basicMaterial.getPackingSpecification())|| + ObjectUtil.isNull(basicMaterial.getSpecification())){ + log.info("物料添加失败!"); + return R.fail("添加失败,物料信息为空!"); + } + + return R.status(basicMaterialService.save(basicMaterial)); } @@ -126,6 +142,18 @@ public class BasicMaterialController extends BladeController { @ApiOperationSupport(order = 6) @ApiOperation(value = "新增或修改", notes = "传入basicMaterial") public R submit(@Valid @RequestBody BasicMaterialEntity basicMaterial) { + if(ObjectUtil.isNull(basicMaterial)){ + log.info("物料添加失败!"); + return R.fail("添加失败,物料信息为空!"); + } + + if(ObjectUtil.isNull(basicMaterial.getName()) || ObjectUtil.isNull(basicMaterial.getProductCode()) || + ObjectUtil.isNull(basicMaterial.getPackageNum()) || ObjectUtil.isNull(basicMaterial.getPackageNum())|| + ObjectUtil.isNull(basicMaterial.getSku())|| ObjectUtil.isNull(basicMaterial.getPackingSpecification())|| + ObjectUtil.isNull(basicMaterial.getSpecification()) || ObjectUtil.isNull(basicMaterial.getLogpmUnit()) ){ + log.info("物料添加失败!"); + return R.fail("添加失败,必填物料信息不完整为空!"); + } return R.status(basicMaterialService.saveOrUpdateOwn(basicMaterial)); } diff --git a/blade-service/logpm-basic/src/main/java/com/logpm/basic/service/impl/BasicMaterialServiceImpl.java b/blade-service/logpm-basic/src/main/java/com/logpm/basic/service/impl/BasicMaterialServiceImpl.java index 59872677b..ed077cb44 100644 --- a/blade-service/logpm-basic/src/main/java/com/logpm/basic/service/impl/BasicMaterialServiceImpl.java +++ b/blade-service/logpm-basic/src/main/java/com/logpm/basic/service/impl/BasicMaterialServiceImpl.java @@ -110,6 +110,7 @@ public class BasicMaterialServiceImpl extends BaseServiceImpl pages = distributionStockupService.selectStockupPage(stockupDTO); @@ -207,25 +223,25 @@ public class DistributionStockupAppController extends BladeController { //自提 if (orderStatus.equals(1)) { //查询备货区信息 - DistributionStockupSelfVO distributionStockupSelfVO = distributionStockupService.selectStockupDetails(reservationId,stockupDTO.getIsZero()); + DistributionStockupSelfVO distributionStockupSelfVO = distributionStockupService.selectStockupDetails(reservationId, stockupDTO.getIsZero()); map = convertObjectToMap(distributionStockupSelfVO); //客户订单 List list = distributionStockupService.selectStockupOrderList(stockupDTO); - if(!list.isEmpty()){ + if (!list.isEmpty()) { List collect = list.stream().filter(i -> { // if (ObjectUtils.isNotNull(i.getTrayId()) && !i.getPallet().contains(",") && !i.isCompleteStact() && ObjectUtils.isNotNull( i.getAllocationId()) ) { if (ObjectUtils.isNotNull(i.getTrayId()) && !i.isCompleteStact()) { List trayEntityList = basicdataTrayClient.getTrayEntityList(i.getTrayId()); - if(ObjectUtils.isNotNull(trayEntityList) && ObjectUtils.isNotNull( trayEntityList.get(0))){ + if (ObjectUtils.isNotNull(trayEntityList) && ObjectUtils.isNotNull(trayEntityList.get(0))) { i.setTrayLeanName(trayEntityList.stream().map(BasicdataTrayEntity::getPalletName).collect(Collectors.joining(","))); } - i.setTrayLean(distributionStockupService.getTrayBoot(i,stockupDTO.getTypeService())); + i.setTrayLean(distributionStockupService.getTrayBoot(i, stockupDTO.getTypeService())); } return true; }).collect(Collectors.toList()); - if(collect.isEmpty()){ - map.put("planNum",0); - map.put("scanNum",0); + if (collect.isEmpty()) { + map.put("planNum", 0); + map.put("scanNum", 0); } map.put("orderList", collect); } @@ -248,10 +264,12 @@ public class DistributionStockupAppController extends BladeController { if (orderStatus.equals(1)) { //查询客户订单对应的 List list = distributionStockupService.selectStockupOrderList(stockupDTO); + + //根据list列表统计计划件数 Integer planNum = 0; Integer scanNum = 0; - if(!list.isEmpty()){ + if (!list.isEmpty()) { for (DistributionStockupOrderListVO vo : list) { planNum = planNum + vo.getPlanNum(); scanNum = scanNum + vo.getScanNum(); @@ -259,13 +277,13 @@ public class DistributionStockupAppController extends BladeController { // Boolean aBoolean = distributionReservationPackageService.selectClientStockupState(reservationId, vo.getStockArticleId()); // vo.setTrayLean(aBoolean); // if (ObjectUtils.isNotNull(vo.getTrayId()) && !vo.getPallet().contains(",") && !vo.isCompleteStact() && ObjectUtils.isNotNull( vo.getAllocationId()) ) { - if (ObjectUtils.isNotNull(vo.getTrayId()) && !vo.isCompleteStact() ) { + if (ObjectUtils.isNotNull(vo.getTrayId()) && !vo.isCompleteStact()) { List trayEntityList = basicdataTrayClient.getTrayEntityList(vo.getTrayId()); - if(ObjectUtils.isNotNull(trayEntityList) && ObjectUtils.isNotNull( trayEntityList.get(0))){ + if (ObjectUtils.isNotNull(trayEntityList) && ObjectUtils.isNotNull(trayEntityList.get(0))) { vo.setTrayLeanName(trayEntityList.stream().map(BasicdataTrayEntity::getPalletName).collect(Collectors.joining(","))); } //有没有可用整托配货的数据 - vo.setTrayLean(distributionStockupService.getTrayBoot(vo,stockupDTO.getTypeService())); + vo.setTrayLean(distributionStockupService.getTrayBoot(vo, stockupDTO.getTypeService())); } } } @@ -273,6 +291,8 @@ public class DistributionStockupAppController extends BladeController { map.put("scanNum", scanNum); map.put("orderList", list); } else if (orderStatus.equals(2)) { + + //查询客户订单对应的库存品 List list = distributionStockupService.selectStockupStockList(stockupDTO); //根据list列表统计计划件数 @@ -281,8 +301,9 @@ public class DistributionStockupAppController extends BladeController { for (DistributionStockupStockListVO vo : list) { planNum = planNum + vo.getPlanNum(); scanNum = scanNum + vo.getRealNum(); - Boolean aBoolean = distributionStockupService.getClientStockupTray(reservationId, vo.getAllocationId()); - vo.setTrayLean(aBoolean); + // 库存品 没有整托备货的概念 +// Boolean aBoolean = distributionStockupService.getClientStockupTray(reservationId, vo.getAllocationId()); +// vo.setTrayLean(aBoolean); } map.put("planNum", planNum); map.put("scanNum", scanNum); @@ -296,6 +317,21 @@ public class DistributionStockupAppController extends BladeController { } + @ResponseBody + @PostMapping("/stockConfigList") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "配置包条码", notes = "传入stockupDTO") + public R stockConfigList(@RequestBody StockupDTO stockupDTO) { + + + StockConfigInfoVO stockConfigOrderPackageListVOS = distributionStockupService.stockConfigList(stockupDTO); + + return R.data(stockConfigOrderPackageListVOS); + + + } + + @ResponseBody @PostMapping("/orderInfo") @ApiOperationSupport(order = 1) @@ -331,8 +367,8 @@ public class DistributionStockupAppController extends BladeController { log.warn("##############orderInfo: 订单Id为空 pallet={}", stockArticleId); return R.fail(3002, "订单Id为空"); } - if(byId.getTypeService().equals("3")){ - //自 + if (byId.getTypeService().equals("3")) { + //自 DistributionStockupOrderInfoVO infoVO = distributionStockupService.selectOrderInfoSelf(stockupDTO); return R.data(infoVO); } else { @@ -359,10 +395,11 @@ public class DistributionStockupAppController extends BladeController { //查询自提还是商 市 if (byId.getTypeService().equals("3")) { //自 - DistributionStockupStockListInfoVO infoVO = distributionStockupService.selectStockListInfoSelf(reservationId, stockListId,allocationId); + DistributionStockupStockListInfoVO infoVO = distributionStockupService.selectStockListInfoSelf(reservationId, stockListId, allocationId); return R.data(infoVO); } else { - DistributionStockupStockListInfoVO infoVO = distributionStockupService.selectStockListInfo(reservationId, stockListId,allocationId); + DistributionStockupStockListInfoVO infoVO = distributionStockupService.selectStockListInfo(reservationId, stockListId, allocationId); +// DistributionStockupStockListInfoVO infoVO = distributionStockupService.selectStockListInfoByCargoNumber(reservationId, stockupDTO.getCargoNumber(), allocationId); return R.data(infoVO); } @@ -379,17 +416,22 @@ public class DistributionStockupAppController extends BladeController { @ApiOperation(value = "备货库存品生成包件码", notes = "传入stockupDTO") public R stockupStockListPackageCode(@RequestBody StockupDTO stockupDTO) { Long reservationId = stockupDTO.getReservationId();//预约单id - Long stockListId = stockupDTO.getStockListId();//库存品id + + + // 根据当前库位获取最早入库的入库批次 + Long stockListId = distributionStockupService.selectStockListInfoByCargoNumber(stockupDTO.getReservationId(), stockupDTO.getCargoNumber(), stockupDTO.getAllocationId()); + log.warn("##############stockupStockListPackageCode: 库存品id为空 stockListId={}", stockListId); + if (Objects.isNull(stockListId)) { + return R.fail("当前库位没有无数据的库存品"); + } + Integer packageNum = stockupDTO.getPackageNum();//包条数量 //查询客户订单详情 log.warn("##############stockupStockListPackageCode: 预约单id为空 reservationId={}", reservationId); if (Objects.isNull(reservationId)) { return R.fail("预约单id不能为空"); } - log.warn("##############stockupStockListPackageCode: 库存品id为空 stockListId={}", stockListId); - if (Objects.isNull(stockListId)) { - return R.fail("库存品id不能为空"); - } + log.warn("##############stockupStockListPackageCode: 包条数量为空 packageNum={}", packageNum); if (Objects.isNull(packageNum)) { return R.fail("包条数量不能为空"); @@ -398,10 +440,11 @@ public class DistributionStockupAppController extends BladeController { return R.data(list); } + @PostMapping("/scanningCode") @ApiOperation(value = "整托备货") public R scanningCodelist(@RequestBody StockupDTO stockupDTO) { - log.debug("=====整托数据:{}",stockupDTO); + log.debug("=====整托数据:{}", stockupDTO); if (ObjectUtils.isNull(stockupDTO.getStockupId())) { return R.fail(3002, "备货id不能为空"); } @@ -418,7 +461,7 @@ public class DistributionStockupAppController extends BladeController { @PostMapping("/zeroStockUp") @ApiOperation(value = "零担备货") public R zeroStockUp(@RequestBody StockupZeroDTO stockupDTO) { - log.debug("=====零担备货:{}",stockupDTO); + log.debug("=====零担备货:{}", stockupDTO); if (ObjectUtils.isNull(stockupDTO.getStockupId())) { return R.fail(3002, "备货id不能为空 !"); } @@ -445,7 +488,7 @@ public class DistributionStockupAppController extends BladeController { @PostMapping("/zeroStockUpData") @ApiOperation(value = "零担备货数据查询") public R zeroStockUpData(@RequestBody StockupZeroDTO stockupDTO) { - log.debug("=====零担备货:{}",stockupDTO); + log.debug("=====零担备货:{}", stockupDTO); if (ObjectUtils.isNull(stockupDTO.getStockupId())) { return R.fail(3002, "备货id不能为空 !"); } @@ -469,31 +512,55 @@ public class DistributionStockupAppController extends BladeController { @ApiOperation(value = "库存品选择货位展示") public R> locationSelection(@RequestBody StockupDTO stockupDTO) { if (ObjectUtils.isNull(stockupDTO.getDeliveryDetailsId())) { - log.warn("############备货库存品ID为空:{}",stockupDTO.getDeliveryDetailsId()); + log.warn("############备货库存品ID为空:{}", stockupDTO.getDeliveryDetailsId()); return R.fail(3002, "备货库存品ID不能为空"); } //查询库存品信息 DistributionReservationStocklistEntity byId = distributionReservationStocklistService.getById(stockupDTO.getDeliveryDetailsId()); - if(ObjectUtils.isNotNull(byId)){ - DistributionStockListEntity byId1 = iDistributionStockListService.getById(byId.getStocklistId()); - if(byId1.getSourceType().equals("2")){ + if (ObjectUtils.isNotNull(byId)) { + DistributionStockListEntity byId1 = distributionStockListService.getById(byId.getStocklistId()); + if (byId1.getSourceType().equals("2")) { //导入 - List list = distributionStockupService.getLocationSelection(stockupDTO); //自提 - if(!list.isEmpty() && ObjectUtils.isNotNull(list.get(0))){ + List list = distributionStockupService.getLocationSelection(stockupDTO); //自提 + if (!list.isEmpty() && ObjectUtils.isNotNull(list.get(0))) { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + list.stream().forEach(i -> { + if (ObjectUtils.isNotNull(i.getCreateTime())) { + i.setWarehousingTime(format.format(i.getCreateTime())); + } + }); return R.data(list); } - List listMarket = distributionStockupService.getLocationMarketSelection(stockupDTO); //商配 - if(!listMarket.isEmpty() && ObjectUtils.isNotNull(listMarket.get(0))){ + List listMarket = distributionStockupService.getLocationMarketSelection(stockupDTO); //商配 + if (!listMarket.isEmpty() && ObjectUtils.isNotNull(listMarket.get(0))) { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + list.stream().forEach(i -> { + if (ObjectUtils.isNotNull(i.getCreateTime())) { + i.setWarehousingTime(format.format(i.getCreateTime())); + } + }); return R.data(listMarket); } - }else{ + } else { //订单 - List list = distributionStockupService.getLocationSelectionOrder(stockupDTO); //自提 - if(!list.isEmpty() && ObjectUtils.isNotNull(list.get(0))){ + List list = distributionStockupService.getLocationSelectionOrder(stockupDTO); //自提 + if (!list.isEmpty() && ObjectUtils.isNotNull(list.get(0))) { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + list.stream().forEach(i -> { + if (ObjectUtils.isNotNull(i.getCreateTime())) { + i.setWarehousingTime(format.format(i.getCreateTime())); + } + }); return R.data(list); } - List listMarket = distributionStockupService.getLocationMarketSelectionOrder(stockupDTO); //商配 - if(!listMarket.isEmpty() && ObjectUtils.isNotNull(listMarket.get(0))){ + List listMarket = distributionStockupService.getLocationMarketSelectionOrder(stockupDTO); //商配 + if (!listMarket.isEmpty() && ObjectUtils.isNotNull(listMarket.get(0))) { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + list.stream().forEach(i -> { + if (ObjectUtils.isNotNull(i.getCreateTime())) { + i.setWarehousingTime(format.format(i.getCreateTime())); + } + }); return R.data(listMarket); } @@ -501,11 +568,10 @@ public class DistributionStockupAppController extends BladeController { } - return Resp.scanFail("当前待备货的库存品未上架,请上架后在继续备货操作!!!","当前待备货的库存品未上架,请上架后在继续备货操作!!!"); + return Resp.scanFail("当前待备货的库存品未上架,请上架后在继续备货操作!!!", "当前待备货的库存品未上架,请上架后在继续备货操作!!!"); } - @PutMapping("/updateStockArea") @ApiOperation(value = "修改备货区") public R updateStockArea(@RequestBody StockupDTO stockupDTO) { @@ -513,17 +579,17 @@ public class DistributionStockupAppController extends BladeController { return R.fail(3002, "备货任务id不能为空"); } - if(ObjectUtils.isNull(stockupDTO.getType())){ - return R.fail(3002,"类型区分不能为空!"); + if (ObjectUtils.isNull(stockupDTO.getType())) { + return R.fail(3002, "类型区分不能为空!"); } - if(stockupDTO.getType().equals(StockupTypeStatusConstant.saomiao.getValue())){ + if (stockupDTO.getType().equals(StockupTypeStatusConstant.saomiao.getValue())) { //扫描 - if(ObjectUtils.isNull(stockupDTO.getStockupAreaCode())){ - return R.fail(3002,"备货区编码不能为空!"); + if (ObjectUtils.isNull(stockupDTO.getStockupAreaCode())) { + return R.fail(3002, "备货区编码不能为空!"); } return distributionStockupService.updeteStockupArea(stockupDTO); - }else if(stockupDTO.getType().equals(StockupTypeStatusConstant.xuanze.getValue())){ + } else if (stockupDTO.getType().equals(StockupTypeStatusConstant.xuanze.getValue())) { DistributionStockupEntity distributionStockupEntity = new DistributionStockupEntity(); //手动选择 if (ObjectUtils.isNull(stockupDTO.getStockupAreaId())) { @@ -541,7 +607,6 @@ public class DistributionStockupAppController extends BladeController { } - @PostMapping("/getStockupArea") @ApiOperation(value = "查询可修改备货区") public R getGoodsArea(@RequestBody StockupDTO stockupDTO) { @@ -560,6 +625,123 @@ public class DistributionStockupAppController extends BladeController { } + @ResponseBody + @PostMapping("/stockupScanCheck") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "备货扫描检查", notes = "传入stockupDTO") + public R stockupScanCheck(@RequestBody StockupDTO stockupDTO) { + Integer scanType = stockupDTO.getScanType();//扫码类型 + + if (scanType == 2) { + //库存品扫描 + Long stockListId = stockupDTO.getStockListId(); + String packetBarCode = stockupDTO.getPacketBarCode(); + String orderCode = stockupDTO.getOrderCode();//订单自编号 + Long stockupId = stockupDTO.getStockupId();//备货任务ID + Long reservationId = stockupDTO.getReservationId();//预约单id + + + //判断是否可以继续备货 + DistributionStockListEntity distributionStockListEntities = distributionStockupService.selectStockListInfoByCargoNumberList(stockupDTO.getReservationId(), stockupDTO.getCargoNumber(), stockupDTO.getAllocationId(), stockupDTO.getPacketBarCode()); + + + if (ObjectUtils.isNull(distributionStockListEntities)) { + return R.data(60003, "", "该包件还不是库存品!"); + } + + // 通过当前预约单和货物定位当前计划的库存品批次 + List planDistributionStockListEntities = getPlanDistributionStockListEntities(stockupDTO); + + + //是否更新计划 + boolean isUpdate = false; + Long updateStockListId = null; + + // 验证当前货位的货位和计划批次是否相同 + + for (DistributionStockListEntity planDistributionStockListEntity : planDistributionStockListEntities) { + if (planDistributionStockListEntity.getSourceType().equals("2")) { + if (planDistributionStockListEntity.getOrderCode().equals(distributionStockListEntities.getIncomingBatch())) { + isUpdate = true; + updateStockListId = distributionStockListEntities.getId(); + break; + } + } + } + if (isUpdate) { + return R.data(60002, updateStockListId, "当前包件批次号与入库批次号不符,是否确认修改计划批次"); + } + + } + return R.data(200, "", "扫描成功!"); + + } + + /** + * 获取计划中库存品 + * @param stockupDTO + * @return + */ + private List getPlanDistributionStockListEntities(StockupDTO stockupDTO) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper(); + lambdaQueryWrapper.eq(DistributionReservationStocklistEntity::getReservationId, stockupDTO.getReservationId()); + lambdaQueryWrapper.eq(DistributionReservationStocklistEntity::getStockListStatus, 1); + List list1 = distributionReservationStocklistService.list(lambdaQueryWrapper); + + // 通过计划的上的库存品id 查询库存品信息 + List collect = list1.stream().map(DistributionReservationStocklistEntity::getStocklistId).collect(Collectors.toList()); + List planDistributionStockListEntities = distributionStockListService.listByIds(collect); + + + return planDistributionStockListEntities; + } + + + + //todo 这里代码没有写完 等TJJ 和CYZ 空了来写 + + // 修改预约备货信息 需要传入修改的包条 + public R updateStockup(@RequestBody StockupDTO stockupDTO) { + + // 增加实际扫描的包件对应的库存品信息 增加在预约库存品中间表上 + DistributionReservationStocklistEntity reservationStocklistEntity = new DistributionReservationStocklistEntity(); + reservationStocklistEntity.setReservationId(stockupDTO.getReservationId()); + reservationStocklistEntity.setReservationNum(0); + reservationStocklistEntity.setLoadingStatus("10"); + reservationStocklistEntity.setSigningStatus("10"); + reservationStocklistEntity.setStockListStatus("3"); + DistributionStockListEntity stockListEntity = distributionStockListService.getById(stockupDTO.getStockListId()); + if(ObjectUtils.isNotNull(stockListEntity)){ + reservationStocklistEntity.setStocklistId(stockListEntity.getId()); + reservationStocklistEntity.setUnit(stockListEntity.getCargoUnit()); + reservationStocklistEntity.setRealityNum(0); + } + + // 这里需要对原来的预约库存信息进行取消 + distributionReservationStocklistService.save(reservationStocklistEntity); + // 默认 计划数量和实际数量为0 + + + return R.fail("操作成功"); + + + //查询出原来的库存品信息 +// DistributionReservationStocklistEntity reservationStocklist = distributionReservationStocklistService.getOne(Wrappers.query().lambda() +// .eq(DistributionReservationStocklistEntity::getReservationId, stockupDTO.getReservationId()) +// .eq(DistributionReservationStocklistEntity::getStocklistId, stockupDTO.getStockListId()) +// .ne(DistributionReservationStocklistEntity::getStockListStatus, ReservationOrderStatusConstant.quxiao.getValue()) +// ); + + + // 再次执行扫描 读取这预约计划下面正常的库存品信息 扣减数量 对新增的预约库存品信息进行增加预约数量和实际数量 + + + // 修改logpm_dis_stock_list_detail 这张表上的库存品ID和包件ID + + + } + + @ResponseBody @PostMapping("/stockupScan") @ApiOperationSupport(order = 1) @@ -570,111 +752,227 @@ public class DistributionStockupAppController extends BladeController { // TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); // try{ //设置lockey - String lockKey = stockupDTO.getPacketBarCode()+stockupDTO.getStockupId(); + String lockKey = stockupDTO.getPacketBarCode() + stockupDTO.getStockupId(); RLock lock = new RedissonConfig().redisson().getLock(lockKey); - if(lock.isLocked()){ + if (lock.isLocked()) { String audioValue2 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.chongfusaomiao.getValue()); return Resp.scanFail(PdaAudioLingoStatus.chongfusaomiao.getName(), audioValue2); } lock.lock(5, TimeUnit.SECONDS); - if (scanType == 1) { - //包件扫描 - String orderCode = stockupDTO.getOrderCode();//订单自编号 - String packetBarCode = stockupDTO.getPacketBarCode();//包件码 - Long stockupId = stockupDTO.getStockupId();//备货任务ID - Long reservationId = stockupDTO.getReservationId();//预约单id - if (StringUtil.isBlank(orderCode)) { - log.warn("##################stockupScan: 包件扫码,订单自编号为空"); - return R.fail("包件扫码:订单自编号不能为空"); - } - if (StringUtil.isBlank(packetBarCode)) { - log.warn("##################stockupScan: 包件扫码,包件码为空"); - return R.fail("包件扫码:包件码不能为空"); - } - if (ObjectUtils.isNull(stockupId)) { - log.warn("##################stockupId: 包件扫码,备货区为空"); - return R.fail("包件扫码:备货任务ID不能为空"); - } - if (Objects.isNull(reservationId)) { - log.warn("##################stockupScan: 包件扫码,预约单id为空"); - return R.fail("包件扫码:预约单id不能为空"); - } + if (scanType == 1) { + return stockupScanByCustom(stockupDTO); + + } else if (scanType == 2) { + R fail = stockupScanByStock(stockupDTO); + if (fail != null) return fail; + + } + log.warn("###################stockupScan: 未知的扫码类型 scanType={}", scanType); + return R.fail("未知的扫码类型"); + + + } + + /** + * 库存品扫码 + * + * @param stockupDTO + * @return + */ + @Nullable + private R stockupScanByStock(StockupDTO stockupDTO) { + //库存品扫描 + Long reservationId = stockupDTO.getReservationId(); + Long stockListId = stockupDTO.getStockListId(); + String packetBarCode = stockupDTO.getPacketBarCode(); +// String stockupArea = stockupDTO.getStockupArea();//备货区 + Long stockupId = stockupDTO.getStockupId();//备货区 + Long allocationId = stockupDTO.getAllocationId();//备货区 + Integer stockPrint = stockupDTO.getStockPrint(); // 库存 + + if (StringUtil.isBlank(packetBarCode)) { + log.warn("##################stockupScan: 库存品扫码,包件码为空"); + return R.fail("库存品扫码:包件码不能为空"); + } + if (ObjectUtils.isNull(stockupId)) { + log.warn("##################stockupScan: 库存品扫码,备货区为空"); + return R.fail("库存品扫码:备货任务ID不能为空"); + } +// if (Objects.isNull(stockListId)) { +// log.warn("##################stockupScan: 库存品扫码,库存品id为空"); +// return R.fail("库存品扫码:库存品id不能为空"); +// } + if (Objects.isNull(reservationId)) { + log.warn("##################stockupScan: 库存品扫码,预约单id为空"); + return R.fail("库存品扫码:预约单id不能为空"); + } + if (Objects.isNull(stockPrint)) { + log.warn("##################stockupScan: 库存品扫码,类型为空"); + return R.fail("库存品扫码:类型不能为空"); + } + if (Objects.isNull(allocationId)) { + log.warn("##################allocationId: 货位ID为空!"); + return R.fail("货位ID不能为空"); + } + //判断是否可以继续备货 + DistributionStockListEntity byId = null; + if (ObjectUtils.isNull(stockListId)) { + // 通过扫码的二维码 查询其对应的库存存信息 + if (stockupDTO.getStockPrint() == 1) { + byId = distributionStockListService.selectStockInforByOrderPackageCode(stockupDTO.getPacketBarCode()); + } else { + byId = disStockOrdercodeRecoService.selectStockOrdercodeRecoListByCode(stockupDTO.getPacketBarCode()); + } + stockupDTO.setStockListId(byId.getId()); + + } else { + byId = distributionStockListService.getById(stockListId); + } + + List locationInformation; + if (byId.getSourceType().equals("2")) { + //导入 + WarehouseUpdownGoodsEntity warehouseUpdownGoodsEntity = new WarehouseUpdownGoodsEntity(); + warehouseUpdownGoodsEntity.setAllocationId(stockupDTO.getAllocationId()); + warehouseUpdownGoodsEntity.setIncomingBatch(byId.getIncomingBatch()); + warehouseUpdownGoodsEntity.setMarketId(byId.getMarketId()); + warehouseUpdownGoodsEntity.setAssociationId(byId.getMaterialId()); + warehouseUpdownGoodsEntity.setAssociationType("4"); + warehouseUpdownGoodsEntity.setWarehouseId(byId.getWarehouseId()); + locationInformation = warehouseUpdownGoodsClient.getLocationStockListInformation(warehouseUpdownGoodsEntity); + if (locationInformation.isEmpty()) { + return Resp.scanFail("当前货位的库存品已为零,请更换货位继续!!", "当前货位的库存品已为零,请更换货位继续!!"); + } + } else { + + // 读取码表上的配置项 是否开启验证批次号 + String isCheckIncomingBatch = DictBizCache.getValue("isCheckIncomingBatch", "isCheckIncomingBatch"); + + List list = distributionParcelListService.list(Wrappers.query().lambda() + .eq(DistributionParcelListEntity::getOrderPackageCode, packetBarCode) + .eq(DistributionParcelListEntity::getOrderCode, byId.getIncomingBatch()) + .eq(DistributionParcelListEntity::getWarehouseId, byId.getWarehouseId()) + ); + //查询包件信息 + if (ObjectUtils.isNotNull(list) && list.size() > 1) { + return Resp.scanFail("查询到重复包条信息!!", "查询到重复包条信息!!"); + } + if (ObjectUtils.isNull(list)) { + return Resp.scanFail("没有查询到包件信息 ! ", "没有查询到包件信息 ! "); + } + + log.info(">>>>> obj {}", list.get(0).getConditions()); + DistributionParcelListEntity distributionParcelListEntity = list.get(0); + + + if (2 != distributionParcelListEntity.getConditions()) { + return Resp.scanFail("当前包件不是库存品,无法备货!!", "当前包件不是库存品,无法备货!!"); + } + + + WarehouseUpdownGoodsEntity warehouseUpdownGoodsEntity = new WarehouseUpdownGoodsEntity(); + warehouseUpdownGoodsEntity.setAllocationId(stockupDTO.getAllocationId()); + warehouseUpdownGoodsEntity.setAssociationId(list.get(0).getId()); + warehouseUpdownGoodsEntity.setAssociationType("3"); + warehouseUpdownGoodsEntity.setWarehouseId(byId.getWarehouseId()); + locationInformation = warehouseUpdownGoodsClient.getLocationStockListInformation(warehouseUpdownGoodsEntity); + if (locationInformation.isEmpty()) { + return Resp.scanFail("当前货位没有该包件信息!!", "当前货位没有该包件信息!!"); + } + } + + Integer i = distributionStockupService.selectPackagePrint(stockupDTO); + switch (i) { + case 1: + //绑定 Integer integer = distributionStockupService.selectPackage(stockupDTO); switch (integer) { case 1: - DistributionStockupEntity distributionStockupEntity = distributionStockupService.getById(stockupDTO.getStockupId()); - //正常 + DistributionStockupEntity stockupEntity = distributionStockupService.getById(stockupDTO.getStockupId()); //先保存扫码包件信息,后续由队列来出来余下补充信息 DistributionStockEntity entity = new DistributionStockEntity(); - DistributionParcelListEntity one = distributionParcelListService.getOne(Wrappers.query().lambda() - .eq(DistributionParcelListEntity::getOrderPackageCode, stockupDTO.getPacketBarCode()) - ); - entity.setOrderSelfNumbering(one.getOrderCode()); - entity.setStockArticle(one.getStockArticleId()); entity.setCoding(packetBarCode); -// entity.setStockupArea(stockupArea); + DistributionStockupEntity byId1 = distributionStockupService.getById(stockupId); + entity.setStockupArea(byId1.getStockupArea()); entity.setStockupId(stockupId); - entity.setParcelListId(one.getId()); entity.setStockQuantity(1); - if (distributionStockupEntity.getTypeService().equals("3")) { + if (stockupEntity.getTypeService().equals("3")) { 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{ + } else { entity.setReservationId(reservationId); } - if(ObjectUtils.isNotNull(stockupDTO.getAllocationId())){ -// warehouseUpdownGoodsClient.selectMsgBywrap(); - WarehouseUpdownGoodsEntity warehouseUpdownGoodsEntity = new WarehouseUpdownGoodsEntity(); - warehouseUpdownGoodsEntity.setAllocationId(stockupDTO.getAllocationId()); - warehouseUpdownGoodsEntity.setAssociationValue(stockupDTO.getPacketBarCode()); - warehouseUpdownGoodsEntity.setWarehouseId(distributionStockupEntity.getWarehouseId()); - WarehouseUpdownGoodsEntity locationInformation = warehouseUpdownGoodsClient.getLocationInformation(warehouseUpdownGoodsEntity); - entity.setAllocationTitle(locationInformation.getPositionCode()); - entity.setAllocationId(stockupDTO.getAllocationId()); + entity.setReservationId(reservationId); + entity.setStockListId(stockupDTO.getStockListId()); + //添加物料信息 +// DistributionStockListEntity byId = iDistributionStockListService.getById(stockListId); + if (ObjectUtils.isNotNull(byId.getMarketId())) { + entity.setMarketId(byId.getMarketId()); + entity.setMaterialId(byId.getMaterialId()); +// WarehouseUpdownGoodsEntity warehouseUpdownGoodsEntity = new WarehouseUpdownGoodsEntity(); +// warehouseUpdownGoodsEntity.setAllocationId(stockupDTO.getAllocationId()); +// warehouseUpdownGoodsEntity.setIncomingBatch(byId.getIncomingBatch()); +// warehouseUpdownGoodsEntity.setMarketId(byId.getMarketId()); +// warehouseUpdownGoodsEntity.setAssociationType("4"); +// WarehouseUpdownGoodsEntity locationInformation = warehouseUpdownGoodsClient.getLocationStockListInformation(warehouseUpdownGoodsEntity); + if (!locationInformation.isEmpty()) { + if (byId.getSourceType().equals("2")) { + //导入下架 + entity.setAllocationTitle(locationInformation.get(0).getPositionCode()); + entity.setAllocationId(stockupDTO.getAllocationId()); + //todo 待下架操作 + JSONObject jsonObject = new JSONObject(); + jsonObject.put("marketId", byId.getMarketId()); + jsonObject.put("materialCode", byId.getCargoNumber()); + jsonObject.put("warehouseId", byId.getWarehouseId()); + jsonObject.put("incomingBatch", byId.getIncomingBatch()); + jsonObject.put("enterNum", 1); + jsonObject.put("allocationId", stockupDTO.getAllocationId()); + List list = new ArrayList<>(); + list.add(jsonObject); + R r = warehouseUpdownTypeClient.downStock(list); + if (r.getCode() != 200) { + log.debug("##########" + r.getMsg()); + return Resp.scanFail("下架失败,请联系管理员!!", "下架失败,请联系管理员!!"); + } + } else { + R r = warehouseUpdownTypeClient.downPackage(packetBarCode, byId.getWarehouseId()); + if (r.getCode() != 200) { + log.debug("##########" + r.getMsg()); + return Resp.scanFail("下架失败,请联系管理员!!", "下架失败,请联系管理员!!"); + } + } + } else { + return Resp.scanFail("本货位的物料已为0,请更换货位继续!!", "本货位的物料已为0,请更换货位继续!!"); + } + } else { + return Resp.scanFail("物料信息查询失败,请联系管理员!!", "物料信息查询失败,请联系管理员!!"); } entity.setConditions("0"); entity.setType(2); - entity.setOutboundType(distributionStockupEntity.getTypeService()); + entity.setAllocationId(stockupDTO.getAllocationId()); distributionStockService.save(entity); - //修改订单备货状态 - distributionAsyncService.updateStockArticleStock(one.getStockArticleId()); -// dataSourceTransactionManager.commit(transactionStatus);//提交 +// dataSourceTransactionManager.commit(transactionStatus);//提交 Map map = new HashMap<>(); map.put("messageId", CommonUtil.getUUID()); - map.put("scanType", scanType); - map.put("stockupId", stockupDTO.getStockupId()); + map.put("scanType", stockupDTO.getScanType()); map.put("logId", entity.getId()); map.put("messageData", entity); map.put("createTime", new Date().getTime()); - //将消息携带绑定键值 - rabbitTemplate.convertAndSend(RabbitConstant.STOCKUP_SCAN_EXCHANGE, RabbitConstant.STOCKUP_SCAN_ROUTING, map); - //查询是否货位数据是否该下架 - Map mapState = new HashMap<>(); - mapState.put("messageId", CommonUtil.getUUID()); - mapState.put("scanType", scanType); - mapState.put("stockupId", stockupDTO.getStockupId()); - mapState.put("typeService", stockupDTO.getTypeService()); - mapState.put("reservationId", stockupDTO.getReservationId()); - mapState.put("logId", entity.getId()); - mapState.put("messageData", entity); - mapState.put("createTime", new Date().getTime()); - //将消息携带绑定键值 - rabbitTemplate.convertAndSend(RabbitConstant.STOCKUP_STATE_UPDATE_EXCHANGE, RabbitConstant.STOCKUP_STATE_UPDATE_ROUTING, mapState); + // 完成对扫描库存品信息的数量维护 + + // 根据当前扫码对象查询得到当前的扫码对象的库存品信息 + + + //将消息携带绑定键值 + rabbitTemplate.convertAndSend(RabbitConstant.STOCKUP_SCAN_EXCHANGE, RabbitConstant.STOCKUP_SCAN_ROUTING, map); String audioValue = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.saomiaochenggong.getValue()); - //查询是否货位数据是否该下架 -// distributionAsyncService.stockupSelfOffShelf(stockupDTO); + + //扫码成功 return Resp.scanSuccess(PdaAudioLingoStatus.saomiaochenggong.getName(), audioValue); case 2: //重复扫描 @@ -682,8 +980,8 @@ public class DistributionStockupAppController extends BladeController { return Resp.scanFail(PdaAudioLingoStatus.chongfusaomiao.getName(), audioValue2); case 3: //包件不存在 - String audioValue3 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.baotiaomabucunzai.getValue()); - return Resp.scanFail(PdaAudioLingoStatus.baotiaomabucunzai.getName(), audioValue3); + String audioValue3 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.baojianbucunzai.getValue()); + return Resp.scanFail(PdaAudioLingoStatus.baojianbucunzai.getName(), audioValue3); case 4: //操作失败 @@ -691,231 +989,168 @@ public class DistributionStockupAppController extends BladeController { return Resp.scanFail(PdaAudioLingoStatus.caozuoshibai.getName(), audioValue4); case 5: //窜货 - String audioValue5 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.buzai.getValue()); - return Resp.scanFail(PdaAudioLingoStatus.buzai.getName(), audioValue5); + String audioValue5 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.cuanhuo.getValue()); + return Resp.scanFail(PdaAudioLingoStatus.cuanhuo.getName(), audioValue5); + case 6: + //已完成 + String audioValue6 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.yiwancheng.getValue()); + return Resp.scanFail(PdaAudioLingoStatus.yiwancheng.getName(), audioValue6); + case 7: + //包条码不存在 + String audioValue7 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.baotiaomabucunzai.getValue()); + return Resp.scanFail(PdaAudioLingoStatus.baotiaomabucunzai.getName(), audioValue7); default: log.warn("###备货扫描:未知错误"); return Resp.scanFail(PdaAudioLingoStatus.weizhicuowu.getName(), PdaAudioLingoStatus.weizhicuowu.getName()); } + case 7: + //包条码不存在 + String audioValue7 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.baotiaomabucunzai.getValue()); + return Resp.scanFail(PdaAudioLingoStatus.baotiaomabucunzai.getName(), audioValue7); + case 8: + //条码已使用 + String audioValue8 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.baotiaomayishiyong.getValue()); + return Resp.scanFail(PdaAudioLingoStatus.baotiaomayishiyong.getName(), audioValue8); + case 9: + //"没有待绑定的库存品信息!" + String audioValue9 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.meiyou.getValue()); + return Resp.scanFail(PdaAudioLingoStatus.meiyou.getName(), audioValue9); + case 10: + //"没有待绑定的库存品信息!" + return Resp.scanFail("该包件与备货物料不匹配!", "该包件与备货物料不匹配!"); + } + return null; + } - } else if (scanType == 2) { - //库存品扫描 - Long reservationId = stockupDTO.getReservationId(); - Long stockListId = stockupDTO.getStockListId(); - String packetBarCode = stockupDTO.getPacketBarCode(); -// String stockupArea = stockupDTO.getStockupArea();//备货区 - Long stockupId = stockupDTO.getStockupId();//备货区 - Long allocationId = stockupDTO.getAllocationId();//备货区 - Integer stockPrint = stockupDTO.getStockPrint(); // 库存 + /** + * 扫描定制品信息 + * + * @param stockupDTO + * @return + */ + @NotNull + private R stockupScanByCustom(StockupDTO stockupDTO) { + //包件扫描 + String orderCode = stockupDTO.getOrderCode();//订单自编号 + String packetBarCode = stockupDTO.getPacketBarCode();//包件码 + Long stockupId = stockupDTO.getStockupId();//备货任务ID + Long reservationId = stockupDTO.getReservationId();//预约单id + if (StringUtil.isBlank(orderCode)) { + log.warn("##################stockupScan: 包件扫码,订单自编号为空"); + return R.fail("包件扫码:订单自编号不能为空"); + } + if (StringUtil.isBlank(packetBarCode)) { + log.warn("##################stockupScan: 包件扫码,包件码为空"); + return R.fail("包件扫码:包件码不能为空"); + } + if (ObjectUtils.isNull(stockupId)) { + log.warn("##################stockupId: 包件扫码,备货区为空"); + return R.fail("包件扫码:备货任务ID不能为空"); + } + if (Objects.isNull(reservationId)) { + log.warn("##################stockupScan: 包件扫码,预约单id为空"); + return R.fail("包件扫码:预约单id不能为空"); + } - if (StringUtil.isBlank(packetBarCode)) { - log.warn("##################stockupScan: 库存品扫码,包件码为空"); - return R.fail("库存品扫码:包件码不能为空"); - } - if (ObjectUtils.isNull(stockupId)) { - log.warn("##################stockupScan: 库存品扫码,备货区为空"); - return R.fail("库存品扫码:备货任务ID不能为空"); - } - if (Objects.isNull(stockListId)) { - log.warn("##################stockupScan: 库存品扫码,库存品id为空"); - return R.fail("库存品扫码:库存品id不能为空"); - } - if (Objects.isNull(reservationId)) { - log.warn("##################stockupScan: 库存品扫码,预约单id为空"); - return R.fail("库存品扫码:预约单id不能为空"); - } - if (Objects.isNull(stockPrint)) { - log.warn("##################stockupScan: 库存品扫码,类型为空"); - return R.fail("库存品扫码:类型不能为空"); - } - if (Objects.isNull(allocationId)) { - log.warn("##################allocationId: 货位ID为空!"); - return R.fail("货位ID不能为空"); + Integer integer = distributionStockupService.selectPackage(stockupDTO); + switch (integer) { + case 1: + DistributionStockupEntity distributionStockupEntity = distributionStockupService.getById(stockupDTO.getStockupId()); + //正常 + //先保存扫码包件信息,后续由队列来出来余下补充信息 + DistributionStockEntity entity = new DistributionStockEntity(); + DistributionParcelListEntity one = distributionParcelListService.getOne(Wrappers.query().lambda() + .eq(DistributionParcelListEntity::getOrderPackageCode, stockupDTO.getPacketBarCode()) + ); + entity.setOrderSelfNumbering(one.getOrderCode()); + entity.setStockArticle(one.getStockArticleId()); + entity.setCoding(packetBarCode); +// entity.setStockupArea(stockupArea); + entity.setStockupId(stockupId); + entity.setParcelListId(one.getId()); + entity.setStockQuantity(1); + if (distributionStockupEntity.getTypeService().equals("3")) { + 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); } - //判断是否可以继续备货 - DistributionStockListEntity byId = iDistributionStockListService.getById(stockListId); - List locationInformation ; - if(byId.getSourceType().equals("2")){ - //导入 - WarehouseUpdownGoodsEntity warehouseUpdownGoodsEntity = new WarehouseUpdownGoodsEntity(); - warehouseUpdownGoodsEntity.setAllocationId(stockupDTO.getAllocationId()); - warehouseUpdownGoodsEntity.setIncomingBatch(byId.getIncomingBatch()); - warehouseUpdownGoodsEntity.setMarketId(byId.getMarketId()); - warehouseUpdownGoodsEntity.setAssociationId(byId.getMaterialId()); - warehouseUpdownGoodsEntity.setAssociationType("4"); - warehouseUpdownGoodsEntity.setWarehouseId(byId.getWarehouseId()); - locationInformation = warehouseUpdownGoodsClient.getLocationStockListInformation(warehouseUpdownGoodsEntity); - if(locationInformation.isEmpty()){ - return Resp.scanFail("当前货位的库存品已为零,请更换货位继续!!", "当前货位的库存品已为零,请更换货位继续!!"); - } - }else{ - //查询包件信息 - List list = distributionParcelListService.list(Wrappers.query().lambda() - .eq(DistributionParcelListEntity::getOrderPackageCode, packetBarCode) - .eq(DistributionParcelListEntity::getOrderCode, byId.getIncomingBatch()) - .eq(DistributionParcelListEntity::getWarehouseId, byId.getWarehouseId()) - ); - if(ObjectUtils.isNotNull(list) && list.size() > 1){ - return Resp.scanFail("查询到重复包条信息!!","查询到重复包条信息!!"); - } - if(ObjectUtils.isNull(list)){ - return Resp.scanFail("没有查询到包件信息 ! ","没有查询到包件信息 ! "); - } - log.info(">>>>> obj {}",list.get(0).getConditions()); - DistributionParcelListEntity distributionParcelListEntity = list.get(0); - if(2!=distributionParcelListEntity.getConditions()){ - return Resp.scanFail("当前包件不是库存品,无法备货!!","当前包件不是库存品,无法备货!!"); - - } + if (ObjectUtils.isNotNull(stockupDTO.getAllocationId())) { +// warehouseUpdownGoodsClient.selectMsgBywrap(); WarehouseUpdownGoodsEntity warehouseUpdownGoodsEntity = new WarehouseUpdownGoodsEntity(); warehouseUpdownGoodsEntity.setAllocationId(stockupDTO.getAllocationId()); - warehouseUpdownGoodsEntity.setAssociationId(list.get(0).getId()); - warehouseUpdownGoodsEntity.setAssociationType("3"); - warehouseUpdownGoodsEntity.setWarehouseId(byId.getWarehouseId()); - locationInformation = warehouseUpdownGoodsClient.getLocationStockListInformation(warehouseUpdownGoodsEntity); - if(locationInformation.isEmpty()){ - return Resp.scanFail("当前货位没有该包件信息!!", "当前货位没有该包件信息!!"); - } + warehouseUpdownGoodsEntity.setAssociationValue(stockupDTO.getPacketBarCode()); + warehouseUpdownGoodsEntity.setWarehouseId(distributionStockupEntity.getWarehouseId()); + WarehouseUpdownGoodsEntity locationInformation = warehouseUpdownGoodsClient.getLocationInformation(warehouseUpdownGoodsEntity); + entity.setAllocationTitle(locationInformation.getPositionCode()); + entity.setAllocationId(stockupDTO.getAllocationId()); } + entity.setConditions("0"); + entity.setType(2); + entity.setOutboundType(distributionStockupEntity.getTypeService()); + distributionStockService.save(entity); + //修改订单备货状态 + distributionAsyncService.updateStockArticleStock(one.getStockArticleId()); +// dataSourceTransactionManager.commit(transactionStatus);//提交 - Integer i = distributionStockupService.selectPackagePrint(stockupDTO); - switch (i) { - case 1: - //绑定 - Integer integer = distributionStockupService.selectPackage(stockupDTO); - switch (integer) { - case 1: - DistributionStockupEntity stockupEntity = distributionStockupService.getById(stockupDTO.getStockupId()); - //先保存扫码包件信息,后续由队列来出来余下补充信息 - DistributionStockEntity entity = new DistributionStockEntity(); - entity.setCoding(packetBarCode); - DistributionStockupEntity byId1 = distributionStockupService.getById(stockupId); - entity.setStockupArea(byId1.getStockupArea()); - entity.setStockupId(stockupId); - entity.setStockQuantity(1); - if(stockupEntity.getTypeService().equals("3")){ - entity.setBillLadingId(reservationId); - }else{ - entity.setReservationId(reservationId); - } - entity.setReservationId(reservationId); - entity.setStockListId(stockListId); - //添加物料信息 -// DistributionStockListEntity byId = iDistributionStockListService.getById(stockListId); - if(ObjectUtils.isNotNull(byId.getMarketId())){ - entity.setMarketId(byId.getMarketId()); - entity.setMaterialId(byId.getMaterialId()); -// WarehouseUpdownGoodsEntity warehouseUpdownGoodsEntity = new WarehouseUpdownGoodsEntity(); -// warehouseUpdownGoodsEntity.setAllocationId(stockupDTO.getAllocationId()); -// warehouseUpdownGoodsEntity.setIncomingBatch(byId.getIncomingBatch()); -// warehouseUpdownGoodsEntity.setMarketId(byId.getMarketId()); -// warehouseUpdownGoodsEntity.setAssociationType("4"); -// WarehouseUpdownGoodsEntity locationInformation = warehouseUpdownGoodsClient.getLocationStockListInformation(warehouseUpdownGoodsEntity); - if(!locationInformation.isEmpty()){ - if(byId.getSourceType().equals("2")){ - //导入下架 - entity.setAllocationTitle(locationInformation.get(0).getPositionCode()); - entity.setAllocationId(stockupDTO.getAllocationId()); - //todo 待下架操作 - JSONObject jsonObject = new JSONObject(); - jsonObject.put("marketId",byId.getMarketId()); - jsonObject.put("materialCode",byId.getCargoNumber()); - jsonObject.put("warehouseId",byId.getWarehouseId()); - jsonObject.put("incomingBatch",byId.getIncomingBatch()); - jsonObject.put("enterNum",1); - jsonObject.put("allocationId",stockupDTO.getAllocationId()); - List list = new ArrayList<>(); - list.add(jsonObject); - R r = warehouseUpdownTypeClient.downStock(list); - if(r.getCode() != 200){ - log.debug("##########"+r.getMsg()); - return Resp.scanFail("下架失败,请联系管理员!!","下架失败,请联系管理员!!"); - } - }else{ - R r = warehouseUpdownTypeClient.downPackage(packetBarCode, byId.getWarehouseId()); - if(r.getCode() != 200){ - log.debug("##########"+r.getMsg()); - return Resp.scanFail("下架失败,请联系管理员!!","下架失败,请联系管理员!!"); - } - } - }else{ - return Resp.scanFail("本货位的物料已为0,请更换货位继续!!","本货位的物料已为0,请更换货位继续!!"); - } - }else{ - return Resp.scanFail("物料信息查询失败,请联系管理员!!", "物料信息查询失败,请联系管理员!!"); - } - entity.setConditions("0"); - entity.setType(2); - distributionStockService.save(entity); -// dataSourceTransactionManager.commit(transactionStatus);//提交 - - Map map = new HashMap<>(); - map.put("messageId", CommonUtil.getUUID()); - map.put("scanType", scanType); - map.put("logId", entity.getId()); - map.put("messageData", entity); - map.put("createTime", new Date().getTime()); - //将消息携带绑定键值 - rabbitTemplate.convertAndSend(RabbitConstant.STOCKUP_SCAN_EXCHANGE, RabbitConstant.STOCKUP_SCAN_ROUTING, map); - String audioValue = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.saomiaochenggong.getValue()); - //扫码成功 - return Resp.scanSuccess(PdaAudioLingoStatus.saomiaochenggong.getName(),audioValue); - case 2: - //重复扫描 - String audioValue2 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.chongfusaomiao.getValue()); - return Resp.scanFail(PdaAudioLingoStatus.chongfusaomiao.getName(),audioValue2); - case 3: - //包件不存在 - String audioValue3 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO,PdaAudioLingoStatus.baojianbucunzai.getValue() ); - return Resp.scanFail(PdaAudioLingoStatus.baojianbucunzai.getName(),audioValue3); - - case 4: - //操作失败 - String audioValue4 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.caozuoshibai.getValue()); - return Resp.scanFail(PdaAudioLingoStatus.caozuoshibai.getName(), audioValue4); - case 5: - //窜货 - String audioValue5 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.cuanhuo.getValue()); - return Resp.scanFail(PdaAudioLingoStatus.cuanhuo.getName(), audioValue5); - case 6: - //已完成 - String audioValue6 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.yiwancheng.getValue()); - return Resp.scanFail(PdaAudioLingoStatus.yiwancheng.getName(), audioValue6); - case 7: - //包条码不存在 - String audioValue7 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.baotiaomabucunzai.getValue()); - return Resp.scanFail(PdaAudioLingoStatus.baotiaomabucunzai.getName(), audioValue7); - default: - log.warn("###备货扫描:未知错误"); - return Resp.scanFail(PdaAudioLingoStatus.weizhicuowu.getName(), PdaAudioLingoStatus.weizhicuowu.getName()); - } - case 7: - //包条码不存在 - String audioValue7 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.baotiaomabucunzai.getValue()); - return Resp.scanFail(PdaAudioLingoStatus.baotiaomabucunzai.getName(), audioValue7); - case 8: - //条码已使用 - String audioValue8 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.baotiaomayishiyong.getValue()); - return Resp.scanFail(PdaAudioLingoStatus.baotiaomayishiyong.getName(), audioValue8); - case 9: - //"没有待绑定的库存品信息!" - String audioValue9 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.meiyou.getValue()); - return Resp.scanFail(PdaAudioLingoStatus.meiyou.getName(), audioValue9); - case 10: - //"没有待绑定的库存品信息!" - return Resp.scanFail("该包件与备货物料不匹配!", "该包件与备货物料不匹配!"); - } - - - } -// }catch (TransactionException e){ -// e.printStackTrace(); -// log.error("######:备货扫描",e.getMessage()); -// dataSourceTransactionManager.rollback(transactionStatus); -// } - - log.warn("###################stockupScan: 未知的扫码类型 scanType={}", scanType); - return R.fail("未知的扫码类型"); + Map map = new HashMap<>(); + map.put("messageId", CommonUtil.getUUID()); + map.put("scanType", stockupDTO.getScanType()); + map.put("stockupId", stockupDTO.getStockupId()); + map.put("logId", entity.getId()); + map.put("messageData", entity); + map.put("createTime", new Date().getTime()); + //将消息携带绑定键值 + rabbitTemplate.convertAndSend(RabbitConstant.STOCKUP_SCAN_EXCHANGE, RabbitConstant.STOCKUP_SCAN_ROUTING, map); + + //查询是否货位数据是否该下架 + Map mapState = new HashMap<>(); + mapState.put("messageId", CommonUtil.getUUID()); + mapState.put("scanType", stockupDTO.getScanType()); + mapState.put("stockupId", stockupDTO.getStockupId()); + mapState.put("typeService", stockupDTO.getTypeService()); + mapState.put("reservationId", stockupDTO.getReservationId()); + mapState.put("logId", entity.getId()); + mapState.put("messageData", entity); + mapState.put("createTime", new Date().getTime()); + + + //将消息携带绑定键值 + rabbitTemplate.convertAndSend(RabbitConstant.STOCKUP_STATE_UPDATE_EXCHANGE, RabbitConstant.STOCKUP_STATE_UPDATE_ROUTING, mapState); + + String audioValue = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.saomiaochenggong.getValue()); + + //查询是否货位数据是否该下架 +// distributionAsyncService.stockupSelfOffShelf(stockupDTO); + return Resp.scanSuccess(PdaAudioLingoStatus.saomiaochenggong.getName(), audioValue); + case 2: + //重复扫描 + String audioValue2 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.chongfusaomiao.getValue()); + return Resp.scanFail(PdaAudioLingoStatus.chongfusaomiao.getName(), audioValue2); + case 3: + //包件不存在 + String audioValue3 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.baotiaomabucunzai.getValue()); + return Resp.scanFail(PdaAudioLingoStatus.baotiaomabucunzai.getName(), audioValue3); + + case 4: + //操作失败 + String audioValue4 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.caozuoshibai.getValue()); + return Resp.scanFail(PdaAudioLingoStatus.caozuoshibai.getName(), audioValue4); + case 5: + //窜货 + String audioValue5 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.buzai.getValue()); + return Resp.scanFail(PdaAudioLingoStatus.buzai.getName(), audioValue5); + default: + log.warn("###备货扫描:未知错误"); + return Resp.scanFail(PdaAudioLingoStatus.weizhicuowu.getName(), PdaAudioLingoStatus.weizhicuowu.getName()); + } } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java index 658f718bd..fca643773 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java @@ -261,6 +261,9 @@ public class DistributionSignforController extends BladeController { @ApiOperationSupport(order = 5) @ApiOperation(value = "修改", notes = "传入distributionSignfor") public R update(@Valid @RequestBody DistributionSignforDTO distributionSignfor) { + BladeUser user = AuthUtil.getUser(); + distributionSignfor.setExamineUserId(user.getUserId()); + distributionSignfor.setExamineUserName(user.getNickName()); R r = distributionSignforService.updateSign(distributionSignfor); // return R.status(distributionSignforService.updateById(distributionSignfor)); return r; @@ -365,6 +368,14 @@ public class DistributionSignforController extends BladeController { } + @GetMapping("/handlePicture") + @ApiOperationSupport(order = 7) + @ApiOperation(value = "PC下载签收图片", notes = "传入ids") + public void handlePicture(@RequestParam String ids,HttpServletResponse res) { + distributionSignforService.handlePicture(ids,res); + } + + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java index a3e59d0bf..43cac09b4 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockArticleController.java @@ -331,6 +331,13 @@ public class DistributionStockArticleController extends BladeController { return R.status(distributionStockArticleService.updateById(distributionStockArticle)); } + @PostMapping("/updateClient") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入distributionStockArticle") + public R updateClient(@Valid @RequestBody DistributionStockArticleEntity distributionStockArticle) { + return R.status(distributionStockArticleService.updateById(distributionStockArticle)); + } + /** * 配送在库订单 新增或修改 */ diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionSigndetailDTO.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionSigndetailDTO.java index 8b56384a7..fe34bc7c8 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionSigndetailDTO.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionSigndetailDTO.java @@ -110,5 +110,35 @@ public class DistributionSigndetailDTO extends DistributionSigndetailEntity { @ApiModelProperty(value = "查询创建时间") private String createTime_query; + /** + * 司机名称 + */ + @ApiModelProperty(value = "driverName") + private String driverName; + + /** + * 车牌号 + */ + @ApiModelProperty(value = "车牌号") + private String vehicleName; + + /** + * 司机名称 + */ + @ApiModelProperty(value = "driverName") + private String taskTime; + + /** + * 审核人 + */ + @ApiModelProperty(value = "审核人") + private String examineUserName; + + /** + * 签收人 + */ + @ApiModelProperty(value = "签收人") + private String signeeName; + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockConfigInfoVO.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockConfigInfoVO.java new file mode 100644 index 000000000..455984fda --- /dev/null +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockConfigInfoVO.java @@ -0,0 +1,24 @@ +package com.logpm.distribution.dto.app; + +import lombok.Data; + +import java.util.List; + +@Data +public class StockConfigInfoVO { + + /** + * 客户 + */ + private String customer; + + /** + * 地址 + */ + private String address;//地址 + + /** + * 库存扫码记录 + */ + private List stockConfigOrderPackageListVOS; +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockConfigOrderPackageListVO.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockConfigOrderPackageListVO.java new file mode 100644 index 000000000..14073adb3 --- /dev/null +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/StockConfigOrderPackageListVO.java @@ -0,0 +1,36 @@ +package com.logpm.distribution.dto.app; + +import lombok.Data; + +import java.util.Date; + + +/** + * 配置包条码 扫码完成展示列表 + */ +@Data +public class StockConfigOrderPackageListVO { + + + /** + * 入库批次 + */ + private String incomingBatch; + + + /** + * 码 + */ + private String code; + + /** + * 码 + */ + private Integer num; + + /** + * 创建时间 + */ + private Date createTime; + +} 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 0021444bf..037723b17 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 @@ -31,6 +31,8 @@ public class StockupDTO implements Serializable { private String descriptionGoods;//物料名称 + private String cargoNumber;//物料编码 + private String allocation;//库位信息 private Long allocationId;//库位信息ID private String allocationCode;//库位信息ID diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java index 02101bb2b..909e63177 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java @@ -66,6 +66,16 @@ public class DistributionParcelListClient implements IDistributionParcelListClie ); } + /** + * 根据包件id查询数据 + * @param id + * @return + */ + @Override + public DistributionParcelListEntity getParcelListId(String id) { + return distributionParcelListService.getById(id); + } + @Override @GetMapping(TOP) public BladePage top(Integer current, Integer size) { diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml index 5533b0d46..eca214a7b 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryListMapper.xml @@ -1749,64 +1749,70 @@ diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.java index cf76982e0..fbce97d42 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionLoadscanMapper.java @@ -101,4 +101,24 @@ public interface DistributionLoadscanMapper extends BaseMapper SELECT SUM(received_quantity) FROM logpm_distribution_loadscan WHERE scan_status != 1 AND signfor_state =2 And order_id =#{orderId} + + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml index 0258593c7..cece9e1ba 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml @@ -99,7 +99,7 @@ from logpm_distribution_stock_article ldsa LEFT JOIN logpm_distribution_parcel_list ldpl on ldsa.id = ldpl.stock_article_id - ldsa.warehouse_id = #{param.warehouseId} and ldpl.order_package_status != '70' + ldsa.warehouse_id = #{param.warehouseId} and ldpl.order_package_status in (20,30,40) and ldsa.mall_id = #{param.mallId} and ldsa.genre = #{param.genre} and ldsa.is_zero = #{param.isZero} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java index d662a8c1c..7ac45acaa 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java @@ -70,6 +70,7 @@ public interface DistributionReservationMapper extends BaseMapper selectStockupOrderList(@Param("reservationId")Long reservationId,@Param("isZero") String isZero); List selectStockupStockList(@Param("reservationId")Long reservationId); + List selectStockupStockListNew(@Param("reservationId")Long reservationId); Integer selectOrderNumByReservationId(@Param("reservationId")Long reservationId); 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 ecedb3db6..19f5d4e0e 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 @@ -297,6 +297,65 @@ ldst.cargo_norms, ldrs.reservation_num, ldst.cargo_unit, ldst.tray_name, ldst.source_type + + @@ -451,7 +491,7 @@ JOIN logpm_distribution_delivery_list lddl ON lddl.id = lds.delivery_id JOIN logpm_distribution_reservation ldr ON ldr.id = lds.reservation_id - lds.is_deleted = 0 and lds.driver_signing ='1' and ldr.is_deleted = 0 + lds.is_deleted = 0 and lds.driver_signing ='1' and ldr.is_deleted = 0 and lddl.is_deleted = 0 AND lds.signing_status = '1' and ldr.mall_name like concat('%',#{param.mallName},'%') @@ -486,6 +526,9 @@ and ldr.delivery_address like concat('%',#{param.deliveryAddress},'%') + + and ldr.warehouse_id = #{param.warehouseId} + @@ -497,7 +540,7 @@ JOIN logpm_distribution_delivery_list lddl ON lddl.id = lds.delivery_id JOIN logpm_distribution_reservation ldr ON ldr.id = lds.reservation_id - lds.is_deleted = 0 and lds.signing_status ='1' and ldr.is_deleted = 0 + lds.is_deleted = 0 and lds.signing_status ='1' and ldr.is_deleted = 0 and lddl.is_deleted = 0 and ldr.mall_name like concat('%',#{param.mallName},'%') @@ -533,6 +576,10 @@ and ldr.delivery_address like concat('%',#{param.deliveryAddress},'%') + + and ldr.warehouse_id = #{param.warehouseId} + + @@ -998,7 +1045,7 @@ WHERE ldla.reservation_id = #{reservationId} and ldla.delivery_list_id = #{deliveryListId} - SELECT * FROM logpm_distribution_sign_print WHERE reservation_id = #{reservationId} and is_deleted = 0 + + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.java index a399d0cda..3b1bfed6c 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.java @@ -109,4 +109,6 @@ public interface DistributionStockListMapper extends BaseMapper getStockListInfo(@Param("par")DistributionStockListEntity distributionStockListEntity); + + DistributionStockListEntity selectStockInforByOrderPackageCode(@Param("orderPackageCode") String orderPackageCode); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.xml index b62293000..15a79595e 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.xml @@ -485,4 +485,21 @@ + + 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 e346e852b..281580edc 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 @@ -159,7 +159,7 @@ select DISTINCT lwug.position_code positionCode, lwug.allocation_id allocationId, lwug.allocation_title allocationTitle, - lwug.num + lwug.num, ldsl.create_time createTime from logpm_distribution_reservation_stocklist ldrs LEFT JOIN logpm_distribution_stock_list ldsl on ldrs.stocklist_id = ldsl.id LEFT JOIN logpm_distribution_parcel_list ldpl on ldpl.order_code = ldsl.incoming_batch and ldpl.conditions = '2' @@ -172,7 +172,7 @@ select lwug.position_code positionCode, lwug.allocation_id allocationId, lwug.allocation_title allocationTitle, - lwug.num + lwug.num, ldsl.create_time createTime from logpm_distribution_reservation_stocklist ldrs LEFT JOIN logpm_distribution_stock_list ldsl on ldrs.stocklist_id = ldsl.id LEFT JOIN logpm_warehouse_updown_goods lwug @@ -185,7 +185,7 @@ select lwug.position_code positionCode, lwug.allocation_id allocationId, lwug.allocation_title allocationTitle, - lwug.num + lwug.num, ldsl.create_time createTime from logpm_distribution_delivery_details lddd LEFT JOIN logpm_distribution_stock_list ldsl on lddd.stock_list_id = ldsl.id LEFT JOIN logpm_warehouse_updown_goods lwug @@ -200,7 +200,7 @@ select DISTINCT lwug.position_code positionCode, lwug.allocation_id allocationId, lwug.allocation_title allocationTitle, - lwug.num + lwug.num, ldsl.create_time createTime from logpm_distribution_delivery_details lddd LEFT JOIN logpm_distribution_stock_list ldsl on lddd.stock_list_id = ldsl.id LEFT JOIN logpm_distribution_parcel_list ldpl on ldpl.order_code = ldsl.incoming_batch and ldpl.conditions = '2' diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDisStockOrdercodeRecoService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDisStockOrdercodeRecoService.java index e3a49d109..dd629deef 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDisStockOrdercodeRecoService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDisStockOrdercodeRecoService.java @@ -19,6 +19,7 @@ package com.logpm.distribution.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.distribution.entity.DisStockOrdercodeRecoEntity; +import com.logpm.distribution.entity.DistributionStockListEntity; import com.logpm.distribution.excel.DisStockOrdercodeRecoExcel; import com.logpm.distribution.vo.DisStockOrdercodeRecoVO; import org.springblade.core.mp.base.BaseService; @@ -50,4 +51,6 @@ public interface IDisStockOrdercodeRecoService extends BaseService exportDisStockOrdercodeReco(Wrapper queryWrapper); + DistributionStockListEntity selectStockOrdercodeRecoListByCode(String packetBarCode); + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java index 78559b20d..65c82ca82 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java @@ -35,6 +35,7 @@ import org.apache.poi.ss.formula.functions.T; import org.springblade.core.mp.base.BaseService; import org.springblade.core.tool.api.R; +import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; @@ -205,4 +206,11 @@ public interface IDistributionSignforService extends BaseService checkAddValuePackageList(IPage page, Map addValueDTO); + + /** + * 导出签收图片 + * @param ids + * @return + */ + void handlePicture(String ids, HttpServletResponse res); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockListService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockListService.java index b8641cb42..726f44965 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockListService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockListService.java @@ -153,6 +153,13 @@ public interface IDistributionStockListService extends BaseService getStockListInfo(DistributionStockListEntity distributionStockListEntity); + /** + * 根据包件编码查询库存品信息 + * @param orderPackageCode + * @return + */ + DistributionStockListEntity selectStockInforByOrderPackageCode(String orderPackageCode); + // /** // * 查询库存品详情 diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockupService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockupService.java index a94251b95..1daa2d8f4 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockupService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockupService.java @@ -17,8 +17,10 @@ package com.logpm.distribution.service; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.logpm.distribution.dto.app.StockConfigInfoVO; import com.logpm.distribution.dto.app.StockupDTO; import com.logpm.distribution.dto.app.StockupZeroDTO; +import com.logpm.distribution.entity.DistributionStockListEntity; import com.logpm.distribution.entity.DistributionStockupEntity; import com.logpm.distribution.excel.DistributionCityExcel; import com.logpm.distribution.excel.DistributionMarketExcel; @@ -250,4 +252,19 @@ public interface IDistributionStockupService extends BaseService implements IDisStockOrdercodeRecoService { + @Autowired + private DistributionStockListMapper distributionStockListMapper; + @Override public IPage selectDisStockOrdercodeRecoPage(IPage page, DisStockOrdercodeRecoVO disStockOrdercodeReco) { return page.setRecords(baseMapper.selectDisStockOrdercodeRecoPage(page, disStockOrdercodeReco)); @@ -52,4 +59,16 @@ public class DisStockOrdercodeRecoServiceImpl extends BaseServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); + List disStockOrdercodeRecoEntities = baseMapper.selectList(lambdaQueryWrapper); + if(!disStockOrdercodeRecoEntities.isEmpty()){ + DisStockOrdercodeRecoEntity disStockOrdercodeRecoEntity = disStockOrdercodeRecoEntities.get(0); + return distributionStockListMapper.selectById(disStockOrdercodeRecoEntity.getStockListId()); + } + + return null; + } } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAddvalueServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAddvalueServiceImpl.java index ae7c897ef..b943817e6 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAddvalueServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAddvalueServiceImpl.java @@ -346,8 +346,8 @@ public class DistributionAddvalueServiceImpl extends BaseServiceImpl>>>>>>>>>>>>>>>>>>>>>>>>>>:{}", detailEntity); diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java index 358847856..3df8e4c56 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java @@ -35,6 +35,7 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.common.constant.common.IsOrNoConstant; import org.springblade.common.constant.loading.LoadingStatusConstant; +import org.springblade.common.constant.orderpackage.OrderPackageLoadingStatusConstant; import org.springblade.common.constant.reservation.ReservationOrderStatusConstant; import org.springblade.common.serviceConstant.ServiceConstant; import org.springblade.core.mp.base.BaseServiceImpl; @@ -77,6 +78,8 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl selectDistributionDeliveryInfoPage(IPage page, DistributionDeliveryInfoVO distributionDeliveryInfo) { List distributionDeliveryInfoVOS = baseMapper.selectDistributionDeliveryInfoPage(page, distributionDeliveryInfo); @@ -404,6 +407,19 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl stockListMap = distributionStockListEntities.stream().collect(Collectors.toMap(DistributionStockListEntity::getId, Function.identity(), (k1, k2) -> k2)); List disStockListDetailVOS = DistributionDisStockListWrapper.build().listVO(inventoryList); disStockListDetailVOS.stream().forEach(sd->{ + //查询一次装车 如果装车了那么 + DistributionLoadscaninvnEntity serviceOne = distributionLoadscaninvnService.getOne(Wrappers.query().lambda() + .eq(DistributionLoadscaninvnEntity::getReservationId, distributionAppDeliveryListDTO.getReservationId()) + .eq(DistributionLoadscaninvnEntity::getInventoryPackageId, sd.getId()) + .eq(DistributionLoadscaninvnEntity::getInventoryId, sd.getStockListId()) + .ne(DistributionLoadscaninvnEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()) + ); + if (Func.isNotEmpty(serviceOne)){ + sd.setLoadingStatusName(OrderPackageLoadingStatusConstant.yizhuangche.getName()); + }else { + sd.setLoadingStatusName(OrderPackageLoadingStatusConstant.weizhuancghe.getName()); + + } if (Func.isNotEmpty(stockListMap.get(sd.getStockListId()))){ DistributionStockListEntity distributionStockListEntity = stockListMap.get(sd.getStockListId()); sd.setMarketName(distributionStockListEntity.getMarketName()); 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 557e240f5..88e9d393b 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 @@ -570,6 +570,8 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl selectStockupStockList(Long reservationId) { - return baseMapper.selectStockupStockList(reservationId); + return baseMapper.selectStockupStockListNew(reservationId); } @Override diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java index 3907120dd..2e5b07a48 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java @@ -45,6 +45,7 @@ import com.logpm.distribution.wrapper.DistributionStockArticleWrapper; import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; import org.apache.poi.ss.formula.functions.T; import org.springblade.common.constant.DictBizConstant; @@ -61,6 +62,7 @@ import org.springblade.common.constant.reservation.*; import org.springblade.common.constant.signing.SignforDriverSigningStatusConstant; import org.springblade.common.exception.CustomerException; import org.springblade.common.serviceConstant.ServiceConstant; +import org.springblade.common.utils.FileUtil; import org.springblade.common.utils.GaoDeApiUtil; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.secure.BladeUser; @@ -75,12 +77,20 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.imageio.ImageIO; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.*; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; +import java.util.List; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Function; import java.util.stream.Collectors; +import java.util.zip.ZipOutputStream; /** * 签收管理 服务实现类 @@ -122,6 +132,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl selectDistributionSignforPage(IPage page, DistributionSignforVO distributionSignfor) { //转换创建时间 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss"); if (null != distributionSignfor.getCreateTime()) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); distributionSignfor.setCreateTime_query(sdf.format(distributionSignfor.getCreateTime())); } //获取当前登录人仓库 @@ -148,17 +159,17 @@ public class DistributionSignforServiceImpl extends BaseServiceImplquery().lambda().eq(DistributionDeliveryListEntity::getId, deliveryId)); - List list = new ArrayList<>(); - if (Func.equals(deliveryListEntity.getKind(), ServiceConstant.DELIVERLIST_KIND_SELF)) { - List distributionDeliverySelfEntities = distributionDeliverySelfMapper.selectList(Wrappers.query().lambda().eq(DistributionDeliverySelfEntity::getDeliveryId, deliveryId)); - distributionDeliverySelfEntities.forEach(s -> list.add(s.getDriverPhone())); - } else { - DistributionDeliveryTripartiteEntity tripartiteEntity = distributionDeliveryTripartiteMapper.selectOne(Wrappers.query().lambda().eq(DistributionDeliveryTripartiteEntity::getDeliveryId, deliveryId)); - list.add(tripartiteEntity.getDriverPhone()); - } - d.setDeliveryDriverPhone(String.join(",", list)); +// Long deliveryId = d.getDeliveryId(); +// DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListMapper.selectOne(Wrappers.query().lambda().eq(DistributionDeliveryListEntity::getId, deliveryId)); +// List list = new ArrayList<>(); +// if (Func.equals(deliveryListEntity.getKind(), ServiceConstant.DELIVERLIST_KIND_SELF)) { +// List distributionDeliverySelfEntities = distributionDeliverySelfMapper.selectList(Wrappers.query().lambda().eq(DistributionDeliverySelfEntity::getDeliveryId, deliveryId)); +// distributionDeliverySelfEntities.forEach(s -> list.add(s.getDriverPhone())); +// } else { +// DistributionDeliveryTripartiteEntity tripartiteEntity = distributionDeliveryTripartiteMapper.selectOne(Wrappers.query().lambda().eq(DistributionDeliveryTripartiteEntity::getDeliveryId, deliveryId)); +// list.add(tripartiteEntity.getDriverPhone()); +// } +// d.setDeliveryDriverPhone(String.join(",", list)); }); return page.setRecords(distributionSignforVOS); } @@ -253,6 +264,10 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl reservationStockarticleEntityList = distributionReservationStockarticleService.list(Wrappers.query().lambda().eq(DistributionReservationStockarticleEntity::getReservationId, signforEntity.getReservationId()).ne( - DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue())); + List reservationStockarticleEntityList = distributionReservationStockarticleService.list(Wrappers.query().lambda() + .eq(DistributionReservationStockarticleEntity::getReservationId, signforEntity.getReservationId()) + .ne(DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue())); // if (Func.isEmpty(reservationStockarticleEntityList)) { // log.error("#####################预约查询无订单信息,reservationId:{}", signforEntity.getReservationId()); // return null; @@ -503,11 +523,25 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl stockArticleEntities = distributionStockArticleService.listByIds(orderIds); + List distributionStockArticleVOS = DistributionStockArticleWrapper.build().listVO(stockArticleEntities); + for (DistributionStockArticleVO distributionStockArticleVO : distributionStockArticleVOS) { + //查询计划、装车、签收数量 + DistributionReservationStockarticleEntity reservationStockarticleEntity = distributionReservationStockarticleService.getOne(Wrappers.query().lambda() + .eq(DistributionReservationStockarticleEntity::getReservationId, signforEntity.getReservationId()) + .eq(DistributionReservationStockarticleEntity::getStockArticleId, distributionStockArticleVO.getId()) + .ne(DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue()) + ); + distributionStockArticleVO.setReservationNum(reservationStockarticleEntity.getReservationNum()); + Integer loadingNum = distributionLoadscanMapper.selectOrderLoadingNumByReservationIdAndDeliveryIdAndOrderId(signforEntity.getReservationId(),signforEntity.getDeliveryId(),distributionStockArticleVO.getId()); + distributionStockArticleVO.setLoadingNumber(loadingNum); + Integer signingNum = distributionLoadscanMapper.selectOrderSigningNumByReservationIdAndDeliveryIdAndOrderId(signforEntity.getReservationId(),signforEntity.getDeliveryId(),distributionStockArticleVO.getId()); + distributionStockArticleVO.setSigningNumber(signingNum); + } List printEntities = baseMapper.selectSignImgsUrl(distributionSignforVO.getReservationId()); distributionSignforVO.setPrintVOList(printEntities); if (Func.isNotEmpty(stockArticleEntities)) { - distributionSignforVO.setOrderInfo(DistributionStockArticleWrapper.build().listVO(stockArticleEntities)); + distributionSignforVO.setOrderInfo(distributionStockArticleVOS); } } // List stockArticleEntityList = baseMapper.selectOrderList(id); @@ -990,7 +1024,11 @@ public class DistributionSignforServiceImpl extends BaseServiceImplquery().lambda().eq(DistributionSignforEntity::getDeliveryId, distributionLoadscanEntity.getDeliveryId()).eq(DistributionSignforEntity::getReservationId, distributionLoadscanEntity.getReservationId())); BigDecimal loadedNumber = new BigDecimal(signforEntity.getLoadedNumber()); @@ -1767,6 +1811,9 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl>>>>>>>>>>>>>>parcelListEntity.getOrderPackageCode():{}",parcelListEntity.getOrderPackageCode()); warehouseUpdownTypeClient.downPackageOrDelTray(parcelListEntity.getOrderPackageCode(), myCurrentWarehouse.getId()); @@ -1851,6 +1903,7 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl>>>>>>>>>>>>>>parcelListEntity.getOrderPackageCode():{}",parcelListEntity.getOrderPackageCode()); warehouseUpdownTypeClient.downPackageOrDelTray(parcelListEntity.getOrderPackageCode(), myCurrentWarehouse.getId()); @@ -1990,6 +2045,8 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl fileList = new ArrayList<>(); + List signIds = Func.toLongList(",", ids); + List distributionSignforEntities = this.listByIds(signIds); + if (Func.isNotEmpty(distributionSignforEntities)) { + for (DistributionSignforEntity distributionSignforEntity : distributionSignforEntities) { + DistributionReservationEntity distributionReservationEntity = distributionReservationMapper.selectById(distributionSignforEntity.getReservationId()); + List printEntities = baseMapper.selectSignImgsUrl(distributionSignforEntity.getReservationId()); + if (Func.isNotEmpty(printEntities)){ + //进行分组 + Map> signingPictureGroup = printEntities.stream().collect(Collectors.groupingBy(DistributionSignPrintVO::getType)); + //进行图片 + signingPictureGroup.forEach((k,v)->{ + //这个方法会根据 + List urls = v.stream().map(DistributionSignPrintVO::getUrlRoute).collect(Collectors.toList()); + FileUtil.handleSignPictureZip(urls, k, distributionReservationEntity.getReservationCode(), distributionReservationEntity.getConsignee()); + }); + + File file = FileUtil.checkZipFile(distributionReservationEntity.getReservationCode()); + if (Func.isNotEmpty(file)){ + fileList.add(file); + } + } + } + + } + //获取Zip文件 + + if (Func.isNotEmpty(fileList)){ + + + byte[] buffer = new byte[1024 * 1024 * 1024]; + FileInputStream fis = null; + BufferedInputStream bis = null; + try { + for (File file : fileList) { + ServletOutputStream os = res.getOutputStream(); + fis = new FileInputStream(file); + bis = new BufferedInputStream(fis); +// res.setHeader("Content-Length", ""+file.listFiles().length); +// res.setContentType("application/zip;charset=UTF-8"); +// res.setHeader("Content-Disposition","签收图片打包"); + int i = bis.read(buffer); + while (i >= 0) { + os.write(buffer, 0, i); + i = bis.read(buffer); + } + } + } catch (IOException e) { + log.info("Download failed!"); + throw new RuntimeException(e); + }finally { + if (bis != null) { + try { + bis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (fis != null) { + try { + fis.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + + + + } } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java index 417d4954f..7ee127052 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockArticleServiceImpl.java @@ -1218,6 +1218,7 @@ public class DistributionStockArticleServiceImpl extends BaseServiceImpl getPackageListByStockArticleId(IPage page, Long orderId) { List parcelListEntityList = distributionParcelListService.list(Wrappers.query().lambda().eq(DistributionParcelListEntity::getStockArticleId, orderId) .eq(DistributionParcelListEntity::getOrderPackageReservationStatus, OrderPackageReservationStatusConstant.daiyuyue.getValue()) + .ne(DistributionParcelListEntity::getConditions,2) .notIn(DistributionParcelListEntity::getOrderPackageStatus, OrderPackageStatusConstant.yiqianshou.getValue(), OrderPackageStatusConstant.yichuku.getValue())); List parcelListVOS = DistributionParcelListWrapper.build().listVO(parcelListEntityList); return page.setRecords(parcelListVOS); diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockListServiceImpl.java index 37d700a1b..fdd0fa170 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockListServiceImpl.java @@ -476,6 +476,18 @@ public class DistributionStockListServiceImpl extends BaseServiceImpl getStockListInfo(DistributionStockListEntity distributionStockListEntity) { return baseMapper.getStockListInfo(distributionStockListEntity); } + + + @Override + public DistributionStockListEntity selectStockInforByOrderPackageCode(String orderPackageCode) { + + + return baseMapper.selectStockInforByOrderPackageCode(orderPackageCode); + + + + + } } // @Override diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java index a1743db3e..1060d1099 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java @@ -17,7 +17,9 @@ package com.logpm.distribution.service.impl; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; @@ -30,18 +32,20 @@ import com.logpm.basicdata.feign.IBasicdataGoodsAreaClient; import com.logpm.basicdata.feign.IBasicdataWarehouseClient; import com.logpm.basicdata.vo.BasicdataGoodsAreaVO; import com.logpm.distribution.bean.Resp; +import com.logpm.distribution.dto.app.StockConfigInfoVO; +import com.logpm.distribution.dto.app.StockConfigOrderPackageListVO; import com.logpm.distribution.dto.app.StockupDTO; import com.logpm.distribution.dto.app.StockupZeroDTO; import com.logpm.distribution.entity.*; import com.logpm.distribution.excel.DistributionCityExcel; import com.logpm.distribution.excel.DistributionMarketExcel; import com.logpm.distribution.excel.DistributionSelfExcel; -import com.logpm.distribution.mapper.DistributionStockupMapper; -import com.logpm.distribution.mapper.DistrilbutionBillLadingMapper; +import com.logpm.distribution.mapper.*; import com.logpm.distribution.service.*; import com.logpm.distribution.vo.*; import com.logpm.distribution.vo.app.StockupZeroVO; import com.logpm.distribution.wrapper.DistributionStockupWrapper; +import com.logpm.warehouse.entity.WarehouseGoodsAllocationEntity; import com.logpm.warehouse.entity.WarehouseTaryAllocationEntity; import com.logpm.warehouse.entity.WarehouseTrayGoodsEntity; import com.logpm.warehouse.entity.WarehouseUpdownGoodsEntity; @@ -50,7 +54,6 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.common.constant.CodeDesEnum; import org.springblade.common.constant.DictBizConstant; -import org.springblade.common.constant.DistributionTypeConstant; import org.springblade.common.constant.orderpackage.OrderPackageStockupStatusConstant; import org.springblade.common.constant.pda.PdaAudioLingoStatus; import org.springblade.common.constant.stocklist.StockLockingStatusConstant; @@ -179,6 +182,22 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl selectDistributionStockupPage(IPage page, DistributionStockupVO distributionStockup) { return page.setRecords(baseMapper.selectDistributionStockupPage(page, distributionStockup)); @@ -253,10 +272,10 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl pageList(IPage page, Map distributionStockup) { DistributionStockupEntity distributionStockupEntity = JSON.parseObject(JSON.toJSONString(distributionStockup), DistributionStockupEntity.class); BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse(); - if(ObjectUtils.isNotNull(myCurrentWarehouse)){ + if (ObjectUtils.isNotNull(myCurrentWarehouse)) { //获取当前登录人仓库 distributionStockupEntity.setWarehouseId(myCurrentWarehouse.getId()); - }else{ + } else { //获取当前登录人仓库 List myWatchWarehouse = basicdataWarehouseClient.getMyWatchWarehouse(); //取出id @@ -296,14 +315,14 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl b = new AtomicReference<>(false); AtomicReference nu = new AtomicReference<>(0); List list1 = distributionStockupInfoService.list(Wrappers.query().lambda().eq(DistributionStockupInfoEntity::getStockupId, vo.getId())); - list1.forEach( z ->{ + list1.forEach(z -> { //查询有没有零担 List list = reservationZeroPackageService.list(Wrappers.query().lambda() .eq(DistributionReservationZeroPackageEntity::getReservationId, z.getReservationId()) .eq(DistributionReservationZeroPackageEntity::getIsDeleted, 0) .in(DistributionReservationZeroPackageEntity::getZeroPackageStatus, "1", "3") ); - if(!list.isEmpty()){ + if (!list.isEmpty()) { int sum = list.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum(); nu.set((int) (nu.get() + sum)); b.set(true); @@ -312,29 +331,29 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl list2 = distrilbutionBillStockService.listPackageSelf(z.getReservationId()); - nu.set(nu.get()+list2.size()); - }else{ + nu.set(nu.get() + list2.size()); + } else { //商,市 List list2 = distributionReservationPackageService.list(Wrappers.query().lambda() .eq(DistributionReservationPackageEntity::getReservationId, z.getReservationId()) - .eq(DistributionReservationPackageEntity::getIsDeleted,0) - .in(DistributionReservationPackageEntity::getPacketBarStatus,"1","3") + .eq(DistributionReservationPackageEntity::getIsDeleted, 0) + .in(DistributionReservationPackageEntity::getPacketBarStatus, "1", "3") ); - nu.set(nu.get()+list2.size()); + nu.set(nu.get() + list2.size()); } }); - if(b.get()){ + if (b.get()) { vo.setPlanNum(nu.get()); } //查询以扫数量 List list = distributionStockService.list(Wrappers.query().lambda().eq(DistributionStockEntity::getStockupId, vo.getId())); - if(list.isEmpty()){ + if (list.isEmpty()) { vo.setRealNum(0); - }else{ + } else { vo.setRealNum(list.stream().mapToInt(DistributionStockEntity::getStockQuantity).sum()); } intToStrDistributionStockupListVO(vo); @@ -419,30 +438,30 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl list = baseMapper.selectStockupClientInfoSelf(stockupDTO); - list.forEach( i ->{ + list.forEach(i -> { QueryWrapper queryWrapper = new QueryWrapper<>(); //查询有没有零担数据 - queryWrapper.eq("reservation_id",i.getReservationId()); - queryWrapper.eq("is_deleted",0); - queryWrapper.in("zero_package_status","1","3"); + queryWrapper.eq("reservation_id", i.getReservationId()); + queryWrapper.eq("is_deleted", 0); + queryWrapper.in("zero_package_status", "1", "3"); List list1 = reservationZeroPackageService.list(queryWrapper); - if(!list1.isEmpty()){ + if (!list1.isEmpty()) { //有 i.setPlanNum(list1.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum()); - }else{ + } else { i.setPlanNum(0); } - //没有 - List list2 = distrilbutionBillStockService.listPackageSelf(i.getReservationId()); - i.setPlanNum(i.getPlanNum()+list2.size()); + //没有 + List list2 = distrilbutionBillStockService.listPackageSelf(i.getReservationId()); + i.setPlanNum(i.getPlanNum() + list2.size()); List listStock = distributionStockService.list(Wrappers.query().lambda() .eq(DistributionStockEntity::getBillLadingId, i.getReservationId()) .eq(DistributionStockEntity::getStockupId, stockupDTO.getStockupId()) ); - if(!listStock.isEmpty()){ + if (!listStock.isEmpty()) { int sum = listStock.stream().mapToInt(DistributionStockEntity::getStockQuantity).sum(); i.setStockupNum(sum); - }else{ + } else { i.setStockupNum(0); } @@ -459,21 +478,21 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); //查询有没有零担数据 - queryWrapper.eq("reservation_id",stockupDTO.getReservationId()); - queryWrapper.eq("is_deleted",0); - queryWrapper.in("zero_package_status","1","3"); + queryWrapper.eq("reservation_id", stockupDTO.getReservationId()); + queryWrapper.eq("is_deleted", 0); + queryWrapper.in("zero_package_status", "1", "3"); List list1 = reservationZeroPackageService.list(queryWrapper); intToStrDistributionStockupListVO(distributionStockupListVO); distributionStockupListVO.setReservationId(Long.parseLong(split[i])); - distributionStockupListVO.setPlanNum(distributionStockupListVO.getPlanNum()+ list1.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum()); + distributionStockupListVO.setPlanNum(distributionStockupListVO.getPlanNum() + list1.stream().mapToInt(DistributionReservationZeroPackageEntity::getQuantity).sum()); List list2 = distributionStockService.list(Wrappers.query().lambda() .eq(DistributionStockEntity::getReservationId, stockupDTO.getReservationId()) .eq(DistributionStockEntity::getStockupId, stockupDTO.getStockupId()) ); - if(!list2.isEmpty()){ + if (!list2.isEmpty()) { int sum = list2.stream().mapToInt(DistributionStockEntity::getStockQuantity).sum(); distributionStockupListVO.setStockupNum(sum); - }else{ + } else { distributionStockupListVO.setStockupNum(0); } list.add(distributionStockupListVO); @@ -605,13 +624,14 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl Predicate distinctByKey(Function keyExtractor){ - Map map=new ConcurrentHashMap<>(); - return t -> map.putIfAbsent(keyExtractor.apply(t),Boolean.TRUE)==null; + private static Predicate distinctByKey(Function keyExtractor) { + Map map = new ConcurrentHashMap<>(); + return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; } /** * 查询货位包件信息 + * * @param stockupDTO * @return */ @@ -620,10 +640,10 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl allocationEntityList = warehouseTaryAllocationClient.getAllocationId(allocationId); - if(ObjectUtils.isNotNull(allocationEntityList) && !allocationEntityList.isEmpty()){ + if (ObjectUtils.isNotNull(allocationEntityList) && !allocationEntityList.isEmpty()) { //查询托盘信息 List trayList = warehouseTrayGoodsClient.getTrayList(trayGoodsEntity); - if(!trayList.isEmpty()){ + if (!trayList.isEmpty()) { i.setTrayId(trayList.get(0).getId().toString()); i.setPallet(trayList.get(0).getTrayCode()); } } - }else{ + } else { List trayList = warehouseTrayGoodsClient.getTrayList(trayGoodsEntity); - if(!trayList.isEmpty()){ + if (!trayList.isEmpty()) { String trayId = trayList.stream().map(WarehouseTrayGoodsEntity::getTrayId).collect(Collectors.toList()).stream().map(Object::toString).collect(Collectors.joining(",")); String trayCode = trayList.stream().map(WarehouseTrayGoodsEntity::getTrayCode).collect(Collectors.joining(",")); i.setTrayId(trayId); @@ -667,16 +687,17 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl getZeroTrayInfo(List list){ + public List getZeroTrayInfo(List list) { List listStockup = new ArrayList<>(); Iterator iterator = list.iterator(); - while (iterator.hasNext()){ + while (iterator.hasNext()) { DistributionStockupOrderListVO i = iterator.next(); BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse(); - if(ObjectUtils.isNull(myCurrentWarehouse)){ + if (ObjectUtils.isNull(myCurrentWarehouse)) { throw new ServiceException("请选择仓库信息!!"); } //查询货位信息 @@ -686,13 +707,13 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl information = warehouseUpdownGoodsClient.getLocationStockListInformation(updownGoodsEntity); - if(!information.isEmpty()){ + if (!information.isEmpty()) { DistributionStockupOrderListVO finalI = i; - information.stream().forEach(q ->{ + information.stream().forEach(q -> { DistributionStockupOrderListVO stockupOrderListVO = new DistributionStockupOrderListVO(); - BeanUtils.copyProperties(finalI,stockupOrderListVO); + BeanUtils.copyProperties(finalI, stockupOrderListVO); //查询托盘信息 - stockupOrderListVO = getTrayInfo(stockupOrderListVO,Long.valueOf(stockupOrderListVO.getStockArticleId()),myCurrentWarehouse.getId(),stockupOrderListVO.getOrderCode(),q.getAllocationId()); + stockupOrderListVO = getTrayInfo(stockupOrderListVO, Long.valueOf(stockupOrderListVO.getStockArticleId()), myCurrentWarehouse.getId(), stockupOrderListVO.getOrderCode(), q.getAllocationId()); stockupOrderListVO.setAllocation(q.getPositionCode()); stockupOrderListVO.setAllocationId(q.getAllocationId()); stockupOrderListVO.setAllocationNumber(q.getNum()); @@ -705,96 +726,97 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl selectSelfInfo(Long reservationId,StockupDTO stockupDTO ){ + public List selectSelfInfo(Long reservationId, StockupDTO stockupDTO) { //查询客户数据 自 - List list = distrilbutionBillStockService.selectDistrilbutionBillSelf(reservationId,stockupDTO.getIsZero()); - if(!list.isEmpty() && ObjectUtils.isNull(list.get(0))){ + List list = distrilbutionBillStockService.selectDistrilbutionBillSelf(reservationId, stockupDTO.getIsZero()); + if (!list.isEmpty() && ObjectUtils.isNull(list.get(0))) { return new ArrayList<>(); } //零担查询货位,托盘信息 - if(stockupDTO.getIsZero().equals("1")){ + if (stockupDTO.getIsZero().equals("1")) { List zeroTrayInfo = getZeroTrayInfo(list); - if(!zeroTrayInfo.isEmpty()){ + if (!zeroTrayInfo.isEmpty()) { list = zeroTrayInfo; } } //获取有货位的数据 List collect11 = list.stream().filter(o -> ObjectUtils.isNotNull(o.getAllocationId())).collect(Collectors.toList()); Set listYou = new HashSet<>(); - collect11.forEach( i -> { + collect11.forEach(i -> { DistributionReservationZeroPackageEntity one = new DistributionReservationZeroPackageEntity(); - if(stockupDTO.getIsZero().equals("1")) { + if (stockupDTO.getIsZero().equals("1")) { //零担 查询预约数量 - one = reservationZeroPackageService.getOneZeroPackageNum(i.getParcelListId(),stockupDTO.getReservationId()); + one = reservationZeroPackageService.getOneZeroPackageNum(i.getParcelListId(), stockupDTO.getReservationId()); } int i1 = stockupDTO.getIsZero().equals("1") ? one.getQuantity() : 1; int i2 = stockupDTO.getIsZero().equals("1") ? one.getRealityQuantity() : 1; - if(listYou.size() > 0){ + if (listYou.size() > 0) { boolean b = listYou.stream().anyMatch(o -> o.getAllocationId().equals(i.getAllocationId())); - if(b){ - listYou.forEach( y -> { - if(y.getAllocationId().equals(i.getAllocationId())){ + if (b) { + listYou.forEach(y -> { + if (y.getAllocationId().equals(i.getAllocationId())) { //相同 - y.setPlanNum(y.getPlanNum()+i1); - if(ObjectUtils.isNotNull(i.getStockId())){ - y.setScanNum(y.getScanNum()+i2); + y.setPlanNum(y.getPlanNum() + i1); + if (ObjectUtils.isNotNull(i.getStockId())) { + y.setScanNum(y.getScanNum() + i2); } //t托盘信息 - if(ObjectUtils.isNotNull(y.getTrayId()) && ObjectUtils.isNotNull(i.getTrayId()) && !y.getTrayId().contains(i.getTrayId())){ - y.setPallet(y.getPallet()+","+i.getPallet()); + if (ObjectUtils.isNotNull(y.getTrayId()) && ObjectUtils.isNotNull(i.getTrayId()) && !y.getTrayId().contains(i.getTrayId())) { + y.setPallet(y.getPallet() + "," + i.getPallet()); } //订单自编号信息 - if(ObjectUtils.isNotNull(y.getOrderCode()) && !y.getOrderCode().contains(i.getOrderCode())){ - y.setOrderCode(y.getOrderCode()+","+i.getOrderCode()); + if (ObjectUtils.isNotNull(y.getOrderCode()) && !y.getOrderCode().contains(i.getOrderCode())) { + y.setOrderCode(y.getOrderCode() + "," + i.getOrderCode()); } //订单Id信息 - if(ObjectUtils.isNotNull(y.getStockArticleId()) && !y.getStockArticleId().contains(i.getStockArticleId())){ - y.setStockArticleId(y.getStockArticleId()+","+i.getStockArticleId()); + if (ObjectUtils.isNotNull(y.getStockArticleId()) && !y.getStockArticleId().contains(i.getStockArticleId())) { + y.setStockArticleId(y.getStockArticleId() + "," + i.getStockArticleId()); } } - } ); - }else{ + }); + } else { i.setPlanNum(i1); - if(ObjectUtils.isNotNull(i.getStockId())){ + if (ObjectUtils.isNotNull(i.getStockId())) { i.setScanNum(i2); - }else{ + } else { i.setScanNum(0); } listYou.add(i); } - }else{ + } else { i.setPlanNum(i1); - if(ObjectUtils.isNotNull(i.getStockId())){ + if (ObjectUtils.isNotNull(i.getStockId())) { i.setScanNum(i2); - }else{ + } else { i.setScanNum(0); } listYou.add(i); } - } ); + }); //获取没有货位的数据 List collect22 = list.stream().filter(o -> ObjectUtils.isNull(o.getAllocationId())).collect(Collectors.toList()); List listLi = new ArrayList<>(); //历史 - if(!collect22.isEmpty()){ - collect22.forEach( i -> { - DistributionStockAllocationVO stockAllocationVO = distributionStockService.selectSelfAllocation(stockupDTO.getReservationId(),stockupDTO.getStockupId(),i.getParcelListId()); - if(ObjectUtils.isNotNull(stockAllocationVO)){ + if (!collect22.isEmpty()) { + collect22.forEach(i -> { + DistributionStockAllocationVO stockAllocationVO = distributionStockService.selectSelfAllocation(stockupDTO.getReservationId(), stockupDTO.getStockupId(), i.getParcelListId()); + if (ObjectUtils.isNotNull(stockAllocationVO)) { //添加以扫货位信息 i.setAllocation(stockAllocationVO.getPositionCode()); i.setAllocationId(stockAllocationVO.getAllocationId()); listLi.add(i); - }else{ + } else { listLi.add(i); } }); @@ -802,58 +824,58 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl collectY = listLi.stream().filter(o -> ObjectUtils.isNotNull(o.getAllocationId())).collect(Collectors.toList()); List collectW = listLi.stream().filter(o -> ObjectUtils.isNull(o.getAllocationId())).collect(Collectors.toList()); //有 - if(!collectY.isEmpty()){ - collectY.forEach( i -> { + if (!collectY.isEmpty()) { + collectY.forEach(i -> { DistributionReservationZeroPackageEntity one = new DistributionReservationZeroPackageEntity(); - if(stockupDTO.getIsZero().equals("1")) { + if (stockupDTO.getIsZero().equals("1")) { //零担 查询预约数量 - one = reservationZeroPackageService.getOneZeroPackageNum(i.getParcelListId(),stockupDTO.getReservationId() ); + one = reservationZeroPackageService.getOneZeroPackageNum(i.getParcelListId(), stockupDTO.getReservationId()); } int i1 = stockupDTO.getIsZero().equals("1") ? one.getQuantity() : 1; int i2 = stockupDTO.getIsZero().equals("1") ? one.getRealityQuantity() : 1; - boolean b = listYou.stream().anyMatch(ii ->ii.getAllocationId().equals(i.getAllocationId())); - if(b){ - listYou.forEach( wu -> { - if(wu.getAllocationId().equals(i.getAllocationId())){ + boolean b = listYou.stream().anyMatch(ii -> ii.getAllocationId().equals(i.getAllocationId())); + if (b) { + listYou.forEach(wu -> { + if (wu.getAllocationId().equals(i.getAllocationId())) { //相同 - wu.setPlanNum(wu.getPlanNum()+i1); - if(ObjectUtils.isNotNull(i.getStockId())){ - wu.setScanNum(wu.getScanNum()+i2); + wu.setPlanNum(wu.getPlanNum() + i1); + if (ObjectUtils.isNotNull(i.getStockId())) { + wu.setScanNum(wu.getScanNum() + i2); } //托盘信息 - if(ObjectUtils.isNotNull(i.getTrayId()) && !wu.getTrayId().contains(i.getTrayId())){ - wu.setPallet(wu.getPallet()+","+i.getPallet()); + if (ObjectUtils.isNotNull(i.getTrayId()) && !wu.getTrayId().contains(i.getTrayId())) { + wu.setPallet(wu.getPallet() + "," + i.getPallet()); } //订单自编号信息 - if(ObjectUtils.isNotNull(i.getOrderCode()) && !wu.getOrderCode().contains(i.getOrderCode())){ - wu.setOrderCode(wu.getOrderCode()+","+i.getOrderCode()); + if (ObjectUtils.isNotNull(i.getOrderCode()) && !wu.getOrderCode().contains(i.getOrderCode())) { + wu.setOrderCode(wu.getOrderCode() + "," + i.getOrderCode()); } //订单ID信息 - if(ObjectUtils.isNotNull(wu.getStockArticleId()) && !wu.getStockArticleId().contains(i.getStockArticleId())){ - wu.setStockArticleId(wu.getStockArticleId()+","+i.getStockArticleId()); + if (ObjectUtils.isNotNull(wu.getStockArticleId()) && !wu.getStockArticleId().contains(i.getStockArticleId())) { + wu.setStockArticleId(wu.getStockArticleId() + "," + i.getStockArticleId()); } - if(wu.getPlanNum().equals(wu.getScanNum())){ + if (wu.getPlanNum().equals(wu.getScanNum())) { wu.setCompleteStact(true); - }else{ + } else { wu.setCompleteStact(false); } } }); - }else{ - i.setPlanNum( i1); - if(ObjectUtils.isNotNull(i.getStockId())){ + } else { + i.setPlanNum(i1); + if (ObjectUtils.isNotNull(i.getStockId())) { i.setScanNum(i2); i.setCompleteStact(true); - }else{ + } else { i.setScanNum(0); } listYou.add(i); } }); } - collectW.forEach(i ->{ + collectW.forEach(i -> { DistributionReservationZeroPackageEntity one = new DistributionReservationZeroPackageEntity(); - if(stockupDTO.getIsZero().equals("1")) { + if (stockupDTO.getIsZero().equals("1")) { //零担 查询预约数量 one = reservationZeroPackageService.getOneZeroPackageNum(i.getParcelListId(), stockupDTO.getReservationId()); @@ -861,45 +883,45 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl ObjectUtils.isNull(ko.getAllocationId())); - if(b){ + if (b) { listYou.forEach(wu -> { - if(ObjectUtils.isNull(wu.getAllocationId())){ + if (ObjectUtils.isNull(wu.getAllocationId())) { //相同 - wu.setPlanNum(wu.getPlanNum()+i1); - if(ObjectUtils.isNotNull(i.getStockId())){ - wu.setScanNum(wu.getScanNum()+i2); + wu.setPlanNum(wu.getPlanNum() + i1); + if (ObjectUtils.isNotNull(i.getStockId())) { + wu.setScanNum(wu.getScanNum() + i2); } //托盘信息 - if( ObjectUtils.isNotNull(i.getPallet()) && !wu.getPallet().contains(i.getPallet())){ - wu.setPallet(wu.getPallet()+","+i.getPallet()); + if (ObjectUtils.isNotNull(i.getPallet()) && !wu.getPallet().contains(i.getPallet())) { + wu.setPallet(wu.getPallet() + "," + i.getPallet()); } //托盘信息 - if( ObjectUtils.isNotNull(i.getTrayId()) && !wu.getTrayId().contains(i.getTrayId())){ - wu.setTrayId(wu.getTrayId()+","+i.getTrayId()); + if (ObjectUtils.isNotNull(i.getTrayId()) && !wu.getTrayId().contains(i.getTrayId())) { + wu.setTrayId(wu.getTrayId() + "," + i.getTrayId()); } //订单自编号信息 - if(ObjectUtils.isNotNull(i.getOrderCode()) && !wu.getOrderCode().contains(i.getOrderCode())){ - wu.setOrderCode(wu.getOrderCode()+","+i.getOrderCode()); + if (ObjectUtils.isNotNull(i.getOrderCode()) && !wu.getOrderCode().contains(i.getOrderCode())) { + wu.setOrderCode(wu.getOrderCode() + "," + i.getOrderCode()); } //订单id信息 - if(ObjectUtils.isNotNull(wu.getStockArticleId()) && !wu.getStockArticleId().contains(i.getStockArticleId())){ - wu.setStockArticleId(wu.getStockArticleId()+","+i.getStockArticleId()); + if (ObjectUtils.isNotNull(wu.getStockArticleId()) && !wu.getStockArticleId().contains(i.getStockArticleId())) { + wu.setStockArticleId(wu.getStockArticleId() + "," + i.getStockArticleId()); } - if(wu.getPlanNum().equals(wu.getScanNum())){ + if (wu.getPlanNum().equals(wu.getScanNum())) { wu.setCompleteStact(true); - }else{ + } else { wu.setCompleteStact(false); } } }); - }else{ + } else { i.setPlanNum(i1); - if(ObjectUtils.isNotNull(i.getStockId())){ + if (ObjectUtils.isNotNull(i.getStockId())) { i.setScanNum(i2); i.setCompleteStact(true); - }else{ + } else { i.setScanNum(0); } listYou.add(i); @@ -913,80 +935,81 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl(listYou); } - public List selectDiscussInfo(Long reservationId,StockupDTO stockupDTO){ + + public List selectDiscussInfo(Long reservationId, StockupDTO stockupDTO) { //商 市 //1.根据预约单id 查询到对应的数据 - List list = distributionReservationService.selectStockupOrderList(reservationId,stockupDTO.getIsZero()); - if(!list.isEmpty() && ObjectUtils.isNull(list.get(0))){ + List list = distributionReservationService.selectStockupOrderList(reservationId, stockupDTO.getIsZero()); + if (!list.isEmpty() && ObjectUtils.isNull(list.get(0))) { return new ArrayList<>(); } //零担查询货位,托盘信息 - if(stockupDTO.getIsZero().equals("1")){ + if (stockupDTO.getIsZero().equals("1")) { List zeroTrayInfo = getZeroTrayInfo(list); - if(!zeroTrayInfo.isEmpty()){ + if (!zeroTrayInfo.isEmpty()) { list = zeroTrayInfo; } } List collect11 = list.stream().filter(o -> ObjectUtils.isNotNull(o.getAllocationId())).collect(Collectors.toList()); //有货位 Set listYou = new HashSet<>(); // - collect11.forEach( p ->{ + collect11.forEach(p -> { //查询零担信息 DistributionReservationZeroPackageEntity one = new DistributionReservationZeroPackageEntity(); - if(stockupDTO.getIsZero().equals("1")) { + if (stockupDTO.getIsZero().equals("1")) { //零担 查询预约数量 - one = reservationZeroPackageService.getOneZeroPackageNum(p.getParcelListId(),stockupDTO.getReservationId() ); + one = reservationZeroPackageService.getOneZeroPackageNum(p.getParcelListId(), stockupDTO.getReservationId()); } int i1 = stockupDTO.getIsZero().equals("1") ? one.getQuantity() : 1; int i2 = stockupDTO.getIsZero().equals("1") ? one.getRealityQuantity() : 1; - if(listYou.size() > 0){ + if (listYou.size() > 0) { // boolean b = listYou.stream().anyMatch(a -> a.getAllocationId().equals(p.getAllocationId())); - if(b){ + if (b) { //有一样的 - listYou.forEach( y -> { - if(y.getAllocationId().equals(p.getAllocationId())){ + listYou.forEach(y -> { + if (y.getAllocationId().equals(p.getAllocationId())) { //相同 - y.setPlanNum(y.getPlanNum()+i1); - if(ObjectUtils.isNotNull(p.getStockId())){ - y.setScanNum(y.getScanNum()+i2); + y.setPlanNum(y.getPlanNum() + i1); + if (ObjectUtils.isNotNull(p.getStockId())) { + y.setScanNum(y.getScanNum() + i2); } //t托盘信息 - if(ObjectUtils.isNotNull(y.getTrayId()) && !y.getTrayId().contains(p.getTrayId())){ - y.setTrayId(y.getTrayId()+","+p.getTrayId()); + if (ObjectUtils.isNotNull(y.getTrayId()) && !y.getTrayId().contains(p.getTrayId())) { + y.setTrayId(y.getTrayId() + "," + p.getTrayId()); } //t托盘信息 - if(ObjectUtils.isNotNull(y.getPallet()) && !y.getPallet().contains(p.getPallet())){ - y.setPallet(y.getPallet()+","+p.getPallet()); + if (ObjectUtils.isNotNull(y.getPallet()) && !y.getPallet().contains(p.getPallet())) { + y.setPallet(y.getPallet() + "," + p.getPallet()); } //订单自编号信息 - if(ObjectUtils.isNotNull(y.getOrderCode()) && !y.getOrderCode().contains(p.getOrderCode())){ - y.setOrderCode(y.getOrderCode()+","+p.getOrderCode()); + if (ObjectUtils.isNotNull(y.getOrderCode()) && !y.getOrderCode().contains(p.getOrderCode())) { + y.setOrderCode(y.getOrderCode() + "," + p.getOrderCode()); } //订单Id信息 - if(ObjectUtils.isNotNull(y.getStockArticleId()) && !y.getStockArticleId().contains(p.getStockArticleId())){ - y.setStockArticleId(y.getStockArticleId()+","+p.getStockArticleId()); + if (ObjectUtils.isNotNull(y.getStockArticleId()) && !y.getStockArticleId().contains(p.getStockArticleId())) { + y.setStockArticleId(y.getStockArticleId() + "," + p.getStockArticleId()); } } - } ); - }else{ + }); + } else { //没有 p.setPlanNum(i1); - if (ObjectUtils.isNull(p.getStockId())){ + if (ObjectUtils.isNull(p.getStockId())) { p.setScanNum(0); - }else{ + } else { p.setCompleteStact(true); p.setScanNum(i2); } listYou.add(p); } - }else{ + } else { // p.setPlanNum(i1); - if (ObjectUtils.isNull(p.getStockId())){ + if (ObjectUtils.isNull(p.getStockId())) { p.setScanNum(0); - }else{ + } else { p.setCompleteStact(true); p.setScanNum(i2); } @@ -996,93 +1019,93 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl collect22 = list.stream().filter(o -> ObjectUtils.isNull(o.getAllocationId())).collect(Collectors.toList()); //无货位 List listLi = new ArrayList<>(); //历史 - collect22.forEach(i ->{ + collect22.forEach(i -> { // 查询包件是否是货位 - DistributionStockAllocationVO stockAllocationVO = distributionStockService.selectAllocation(stockupDTO.getReservationId(),stockupDTO.getStockupId(),i.getParcelListId()); - if(ObjectUtils.isNotNull(stockAllocationVO)){ + DistributionStockAllocationVO stockAllocationVO = distributionStockService.selectAllocation(stockupDTO.getReservationId(), stockupDTO.getStockupId(), i.getParcelListId()); + if (ObjectUtils.isNotNull(stockAllocationVO)) { //添加以扫货位信息 i.setAllocation(stockAllocationVO.getPositionCode()); i.setAllocationId(stockAllocationVO.getAllocationId()); listLi.add(i); - }else{ + } else { listLi.add(i); } }); List collectYou = listLi.stream().filter(o -> ObjectUtils.isNotNull(o.getAllocationId())).collect(Collectors.toList());//有 List collectWu = listLi.stream().filter(o -> ObjectUtils.isNull(o.getAllocationId())).collect(Collectors.toList());//没有 - collectYou.forEach( p ->{ + collectYou.forEach(p -> { //查询零担信息 DistributionReservationZeroPackageEntity one = new DistributionReservationZeroPackageEntity(); - if(stockupDTO.getIsZero().equals("1")) { + if (stockupDTO.getIsZero().equals("1")) { //零担 查询预约数量 - one = reservationZeroPackageService.getOneZeroPackageNum(p.getParcelListId(),stockupDTO.getReservationId() ); + one = reservationZeroPackageService.getOneZeroPackageNum(p.getParcelListId(), stockupDTO.getReservationId()); } int i1 = stockupDTO.getIsZero().equals("1") ? one.getQuantity() : 1; int i2 = stockupDTO.getIsZero().equals("1") ? one.getRealityQuantity() : 1; - if(listYou.size() > 0){ + if (listYou.size() > 0) { // boolean b = listYou.stream().anyMatch(a -> a.getAllocationId().equals(p.getAllocationId())); - if(b){ + if (b) { //有一样的 - listYou.forEach( y -> { - if(y.getAllocationId().equals(p.getAllocationId())){ + listYou.forEach(y -> { + if (y.getAllocationId().equals(p.getAllocationId())) { //相同 - y.setPlanNum(y.getPlanNum()+i1); - if(ObjectUtils.isNotNull(p.getStockId())){ - y.setScanNum(y.getScanNum()+i2); + y.setPlanNum(y.getPlanNum() + i1); + if (ObjectUtils.isNotNull(p.getStockId())) { + y.setScanNum(y.getScanNum() + i2); } //t托盘信息 - if(ObjectUtils.isNotNull(y.getTrayId()) && ObjectUtils.isNotNull(p.getTrayId()) && !y.getTrayId().contains(p.getTrayId())){ - y.setTrayId(y.getTrayId()+","+p.getTrayId()); + if (ObjectUtils.isNotNull(y.getTrayId()) && ObjectUtils.isNotNull(p.getTrayId()) && !y.getTrayId().contains(p.getTrayId())) { + y.setTrayId(y.getTrayId() + "," + p.getTrayId()); } //托盘信息 - if(ObjectUtils.isNotNull(y.getPallet()) && ObjectUtils.isNotNull(p.getPallet()) && !y.getPallet().contains(p.getPallet())){ - y.setPallet(y.getPallet()+","+p.getPallet()); + if (ObjectUtils.isNotNull(y.getPallet()) && ObjectUtils.isNotNull(p.getPallet()) && !y.getPallet().contains(p.getPallet())) { + y.setPallet(y.getPallet() + "," + p.getPallet()); } //订单自编号信息 - if(ObjectUtils.isNotNull(y.getOrderCode()) && !y.getOrderCode().contains(p.getOrderCode())){ - y.setOrderCode(y.getOrderCode()+","+p.getOrderCode()); + if (ObjectUtils.isNotNull(y.getOrderCode()) && !y.getOrderCode().contains(p.getOrderCode())) { + y.setOrderCode(y.getOrderCode() + "," + p.getOrderCode()); } //订单id信息 - if(ObjectUtils.isNotNull(y.getStockArticleId()) && !y.getStockArticleId().contains(p.getStockArticleId())){ - y.setStockArticleId(y.getStockArticleId()+","+p.getStockArticleId()); + if (ObjectUtils.isNotNull(y.getStockArticleId()) && !y.getStockArticleId().contains(p.getStockArticleId())) { + y.setStockArticleId(y.getStockArticleId() + "," + p.getStockArticleId()); } - if(y.getPlanNum().equals(y.getScanNum())){ + if (y.getPlanNum().equals(y.getScanNum())) { y.setCompleteStact(true); - }else{ + } else { y.setCompleteStact(false); } } - } ); - }else{ + }); + } else { //没有 p.setPlanNum(i1); - if (ObjectUtils.isNull(p.getStockId())){ + if (ObjectUtils.isNull(p.getStockId())) { p.setScanNum(0); - }else{ + } else { p.setScanNum(i2); p.setCompleteStact(true); } listYou.add(p); } - }else{ + } else { // p.setPlanNum(i1); - if (ObjectUtils.isNull(p.getStockId())){ + if (ObjectUtils.isNull(p.getStockId())) { p.setScanNum(0); - }else{ + } else { p.setScanNum(i2); p.setCompleteStact(true); } listYou.add(p); } }); - collectWu.forEach(i ->{ + collectWu.forEach(i -> { //查询零担信息 DistributionReservationZeroPackageEntity one = new DistributionReservationZeroPackageEntity(); - if(stockupDTO.getIsZero().equals("1")) { + if (stockupDTO.getIsZero().equals("1")) { //零担 查询预约数量 one = reservationZeroPackageService.getOneZeroPackageNum(i.getParcelListId(), stockupDTO.getReservationId()); } @@ -1091,43 +1114,43 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl ObjectUtils.isNull(ko.getAllocationId())); - if(b){ - listYou.forEach( wu -> { - if(ObjectUtils.isNull(wu.getAllocationId())){ + if (b) { + listYou.forEach(wu -> { + if (ObjectUtils.isNull(wu.getAllocationId())) { //相同 - wu.setPlanNum(wu.getPlanNum()+i1); - if(ObjectUtils.isNotNull(i.getStockId())){ - wu.setScanNum(wu.getScanNum()+i2); + wu.setPlanNum(wu.getPlanNum() + i1); + if (ObjectUtils.isNotNull(i.getStockId())) { + wu.setScanNum(wu.getScanNum() + i2); } //托盘信息 - if(ObjectUtils.isNotNull(wu.getTrayId()) && ObjectUtils.isNotNull(i.getTrayId()) && !wu.getTrayId().contains(i.getTrayId())){ - wu.setTrayId(wu.getTrayId()+","+i.getTrayId()); + if (ObjectUtils.isNotNull(wu.getTrayId()) && ObjectUtils.isNotNull(i.getTrayId()) && !wu.getTrayId().contains(i.getTrayId())) { + wu.setTrayId(wu.getTrayId() + "," + i.getTrayId()); } //托盘信息 - if(ObjectUtils.isNotNull(wu.getPallet()) && ObjectUtils.isNotNull(i.getPallet()) && !wu.getPallet().contains(i.getPallet())){ - wu.setPallet(wu.getPallet()+","+i.getPallet()); + if (ObjectUtils.isNotNull(wu.getPallet()) && ObjectUtils.isNotNull(i.getPallet()) && !wu.getPallet().contains(i.getPallet())) { + wu.setPallet(wu.getPallet() + "," + i.getPallet()); } //订单自编号信息 - if(ObjectUtils.isNotNull(wu.getOrderCode()) && !wu.getOrderCode().contains(i.getOrderCode())){ - wu.setOrderCode(wu.getOrderCode()+","+i.getOrderCode()); + if (ObjectUtils.isNotNull(wu.getOrderCode()) && !wu.getOrderCode().contains(i.getOrderCode())) { + wu.setOrderCode(wu.getOrderCode() + "," + i.getOrderCode()); } //订单id信息 - if(ObjectUtils.isNotNull(wu.getStockArticleId()) && !wu.getStockArticleId().contains(i.getStockArticleId())){ - wu.setStockArticleId(wu.getStockArticleId()+","+i.getStockArticleId()); + if (ObjectUtils.isNotNull(wu.getStockArticleId()) && !wu.getStockArticleId().contains(i.getStockArticleId())) { + wu.setStockArticleId(wu.getStockArticleId() + "," + i.getStockArticleId()); } - if(wu.getPlanNum().equals(wu.getScanNum())){ + if (wu.getPlanNum().equals(wu.getScanNum())) { wu.setCompleteStact(true); - }else{ + } else { wu.setCompleteStact(false); } } }); - }else{ + } else { i.setPlanNum(i1); - if(ObjectUtils.isNotNull(i.getStockId())){ + if (ObjectUtils.isNotNull(i.getStockId())) { i.setScanNum(i2); i.setCompleteStact(true); - }else{ + } else { i.setScanNum(0); } listYou.add(i); @@ -1139,52 +1162,43 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl selectStockupStockList(StockupDTO stockupDTO) { Long reservationId = stockupDTO.getReservationId();//预约单id if (stockupDTO.getTypeService().equals("3")) { //自 List list = distributionStockupService.selectStockupSelf(reservationId); - list.forEach(i ->{ - if(i.getPlanNum().equals(i.getRealNum())){ + list.forEach(i -> { + if (i.getPlanNum().equals(i.getRealNum())) { i.setCompleteStact(true); } }); return list; } else { - /* List list1 = distributionReservationStocklistService.list(Wrappers.query().lambda() - .eq(DistributionReservationStocklistEntity::getReservationId, stockupDTO.getReservationId()) - .apply("stock_list_status in (1,3)") - ); - //查询库存品的类型 - List listType = new ArrayList<>(); - if(list1.isEmpty()){ - list1.stream().forEach( i ->{ - DistributionStockListEntity byId = distributionStockListService.getById(i.getStocklistId()); - listType.add(byId.getSourceType()); - }); - } - if(listType.isEmpty()){ - listType.forEach(i ->{ - if(i.equals("2")){ - //商,市 - List list = distributionReservationService.selectStockupStockList(reservationId); - }else { - - } - }); - }*/ - //商,市 List list = distributionReservationService.selectStockupStockList(reservationId); - list.forEach(i ->{ - if(i.getPlanNum().equals(i.getRealNum())){ - i.setCompleteStact(true); + + for (int i = 0; i < list.size(); i++) { + DistributionStockupStockListVO distributionStockupStockListVO = list.get(i); + if (distributionStockupStockListVO.getPlanNum().equals(distributionStockupStockListVO.getRealNum())) { + distributionStockupStockListVO.setCompleteStact(true); } - }); + // 查询货位信息 + String[] ids = distributionStockupStockListVO.getAllocations().split(","); + + List allocationInforByIds = warehouseGoodsAllocationClient.getAllocationInforByIds(ids); + + for (WarehouseGoodsAllocationEntity allocationInforById : allocationInforByIds) { + if (distributionStockupStockListVO.getAllocationList() == null) { + distributionStockupStockListVO.setAllocationList(new ArrayList<>()); + } + Map map = new HashMap<>(); + map.put("id", allocationInforById.getId()); + map.put("name", allocationInforById.getQrCode()); + distributionStockupStockListVO.getAllocationList().add(map); + } + } return list; } @@ -1192,10 +1206,10 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl list = new ArrayList<>(); - if(stockupDTO.getStatus().equals(1)){ + if (stockupDTO.getStatus().equals(1)) { //查询已下架的数据 list = distributionParcelListService.selectOrderInfoAllocationList(stockupDTO); - }else{ + } else { //没有下架 List packageStockupVOS = distributionParcelListService.selectOrderInfoList(stockupDTO); // list = distributionParcelListService.selectOrderInfoList(stockupDTO); @@ -1220,14 +1234,14 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl iterator = list.iterator(); - if(ObjectUtils.isNotNull(stockupDTO.getAllocationId())){ + if (ObjectUtils.isNotNull(stockupDTO.getAllocationId())) { //有 - while (iterator.hasNext()){ + while (iterator.hasNext()) { PackageStockupVO vo = iterator.next(); - if(ObjectUtils.isNull(vo.getPositionCode()) || ObjectUtils.isNotNull(vo.getAllocationId()) && !vo.getAllocationId().equals(stockupDTO.getAllocationId()) ){ + if (ObjectUtils.isNull(vo.getPositionCode()) || ObjectUtils.isNotNull(vo.getAllocationId()) && !vo.getAllocationId().equals(stockupDTO.getAllocationId())) { iterator.remove(); continue; } @@ -1244,7 +1258,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl + * reservationId 自提id + * stockArticleId 订单id + * stockupId 备货id + * trayId 托盘id * - * reservationId 自提id - * stockArticleId 订单id - * stockupId 备货id - * trayId 托盘id * @return */ @Override public DistributionStockupOrderInfoVO selectOrderInfoSelf(StockupDTO stockupDTO) { DistributionStockArticleEntity byId = distributionStockArticleService.getById(stockupDTO.getStockArticleId()); - if(stockupDTO.getStatus().equals(1)){ + if (stockupDTO.getStatus().equals(1)) { //已备货 List distributionStockupSelf = distrilbutionBillStockService.selectDistrilbutionBillOverPackWuSelf(stockupDTO); // DistributionStockupSelfVO distributionStockupSelfVO = distrilbutionBillStockService.selectDistrilbutionBillPackWuSelf(stockupDTO.getReservationId(), stockupDTO.getStockupId()); DistributionStockupSelfVO distributionStockupSelfVO = new DistributionStockupSelfVO(); AtomicReference j = new AtomicReference<>(0); AtomicReference y = new AtomicReference<>(0); - if(ObjectUtils.isNotNull(stockupDTO.getAllocationId())){ + if (ObjectUtils.isNotNull(stockupDTO.getAllocationId())) { distributionStockupSelf.forEach(i -> { - if(ObjectUtils.isNotNull(i.getLwugId())){ + if (ObjectUtils.isNotNull(i.getLwugId())) { j.updateAndGet(v -> v + i.getPlanNum()); y.updateAndGet(v -> v + i.getScanNum()); - if(ObjectUtils.isNull(distributionStockupSelfVO.getConsignee())){ + if (ObjectUtils.isNull(distributionStockupSelfVO.getConsignee())) { distributionStockupSelfVO.setConsignee(i.getConsignee()); - }else{ - if(ObjectUtils.isNotNull(i.getConsignee()) && !distributionStockupSelfVO.getConsignee().contains(i.getConsignee()) ){ - distributionStockupSelfVO.setConsignee(distributionStockupSelfVO.getConsignee()+","+i.getConsignee()); + } else { + if (ObjectUtils.isNotNull(i.getConsignee()) && !distributionStockupSelfVO.getConsignee().contains(i.getConsignee())) { + distributionStockupSelfVO.setConsignee(distributionStockupSelfVO.getConsignee() + "," + i.getConsignee()); } } - if(ObjectUtils.isNull(distributionStockupSelfVO.getTrays())){ + if (ObjectUtils.isNull(distributionStockupSelfVO.getTrays())) { distributionStockupSelfVO.setTrays(i.getTrays()); - }else{ - if(ObjectUtils.isNotNull(i.getTrays()) && !distributionStockupSelfVO.getTrays().contains(i.getTrays())){ - distributionStockupSelfVO.setTrays(distributionStockupSelfVO.getTrays()+","+i.getTrays()); + } else { + if (ObjectUtils.isNotNull(i.getTrays()) && !distributionStockupSelfVO.getTrays().contains(i.getTrays())) { + distributionStockupSelfVO.setTrays(distributionStockupSelfVO.getTrays() + "," + i.getTrays()); } } } }); - }else{ + } else { distributionStockupSelf.forEach(i -> { - if(ObjectUtils.isNull(i.getLwugId())){ + if (ObjectUtils.isNull(i.getLwugId())) { j.updateAndGet(v -> v + 1); y.updateAndGet(v -> v + i.getScanNum()); - if(ObjectUtils.isNull(distributionStockupSelfVO.getConsignee())){ + if (ObjectUtils.isNull(distributionStockupSelfVO.getConsignee())) { distributionStockupSelfVO.setConsignee(i.getConsignee()); - }else{ - if(ObjectUtils.isNotNull(i.getConsignee()) && !distributionStockupSelfVO.getConsignee().contains(i.getConsignee()) ){ - distributionStockupSelfVO.setConsignee(distributionStockupSelfVO.getConsignee()+","+i.getConsignee()); + } else { + if (ObjectUtils.isNotNull(i.getConsignee()) && !distributionStockupSelfVO.getConsignee().contains(i.getConsignee())) { + distributionStockupSelfVO.setConsignee(distributionStockupSelfVO.getConsignee() + "," + i.getConsignee()); } } - if(ObjectUtils.isNull(distributionStockupSelfVO.getTrays())){ + if (ObjectUtils.isNull(distributionStockupSelfVO.getTrays())) { distributionStockupSelfVO.setTrays(i.getTrays()); - }else{ - if(ObjectUtils.isNotNull(i.getTrays()) && !distributionStockupSelfVO.getTrays().contains(i.getTrays())){ - distributionStockupSelfVO.setTrays(distributionStockupSelfVO.getTrays()+","+i.getTrays()); + } else { + if (ObjectUtils.isNotNull(i.getTrays()) && !distributionStockupSelfVO.getTrays().contains(i.getTrays())) { + distributionStockupSelfVO.setTrays(distributionStockupSelfVO.getTrays() + "," + i.getTrays()); } } } @@ -1373,7 +1388,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl list = distributionParcelListService.selectOrderInfoSelfAllocationList(stockupDTO); Iterator iterator = list.iterator(); List listPack = new ArrayList<>(); - if(ObjectUtils.isNotNull(stockupDTO.getAllocationId()) ){ - while (iterator.hasNext()){ + if (ObjectUtils.isNotNull(stockupDTO.getAllocationId())) { + while (iterator.hasNext()) { PackageStockupVO next = iterator.next(); - if(stockupDTO.getAllocationId().equals(next.getAllocationId()) ){ + if (stockupDTO.getAllocationId().equals(next.getAllocationId())) { next.setIsScanStr("已备货"); next.setIsScan(2); listPack.add(next); } } - }else{ - while (iterator.hasNext()){ + } else { + while (iterator.hasNext()) { PackageStockupVO next = iterator.next(); - if(ObjectUtils.isNull(next.getAllocationId())){ + if (ObjectUtils.isNull(next.getAllocationId())) { next.setIsScanStr("已备货"); next.setIsScan(2); listPack.add(next); @@ -1416,39 +1431,39 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl distributionStockupSelfVOS = distrilbutionBillStockService.selectDistrilbutionBillPackSelf(stockupDTO); List collect = distributionStockupSelfVOS.stream().filter(i -> ObjectUtils.isNotNull(i.getWarehouseArea())).collect(Collectors.toList()); - DistributionStockupSelfVO distributionStockup= new DistributionStockupSelfVO(); + DistributionStockupSelfVO distributionStockup = new DistributionStockupSelfVO(); AtomicReference j = new AtomicReference<>(0); AtomicReference y = new AtomicReference<>(0); collect.forEach(i -> { j.updateAndGet(v -> v + i.getPlanNum()); y.updateAndGet(v -> v + i.getScanNum()); - if(ObjectUtils.isNull(distributionStockup.getConsignee())){ + if (ObjectUtils.isNull(distributionStockup.getConsignee())) { distributionStockup.setConsignee(i.getConsignee()); - }else{ - if(ObjectUtils.isNotNull(distributionStockup.getConsignee()) && !distributionStockup.getConsignee().contains(i.getConsignee())){ + } else { + if (ObjectUtils.isNotNull(distributionStockup.getConsignee()) && !distributionStockup.getConsignee().contains(i.getConsignee())) { String s = distributionStockup.getConsignee() + i.getConsignee(); distributionStockup.setConsignee(s); } } - if(ObjectUtils.isNull(distributionStockup.getTrays()) ){ + if (ObjectUtils.isNull(distributionStockup.getTrays())) { distributionStockup.setTrays(i.getTrays()); - }else{ - if(ObjectUtils.isNotNull(distributionStockup.getTrays()) && !distributionStockup.getTrays().contains(i.getTrays())){ + } else { + if (ObjectUtils.isNotNull(distributionStockup.getTrays()) && !distributionStockup.getTrays().contains(i.getTrays())) { String s = distributionStockup.getTrays() + i.getTrays(); distributionStockup.setTrays(s); } } - if(ObjectUtils.isNull(distributionStockup.getWarehouseArea()) ){ + if (ObjectUtils.isNull(distributionStockup.getWarehouseArea())) { distributionStockup.setWarehouseArea(i.getWarehouseArea()); - }else{ - if(ObjectUtils.isNotNull(distributionStockup.getWarehouseArea()) && !distributionStockup.getWarehouseArea().contains(i.getWarehouseArea())){ + } else { + if (ObjectUtils.isNotNull(distributionStockup.getWarehouseArea()) && !distributionStockup.getWarehouseArea().contains(i.getWarehouseArea())) { String s = distributionStockup.getWarehouseArea() + i.getWarehouseArea(); distributionStockup.setWarehouseArea(s); } @@ -1457,27 +1472,27 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl distributionStockupSelfVOS = distrilbutionBillStockService.selectDistrilbutionBillPackWuSelf(stockupDTO.getReservationId(), stockupDTO.getStockupId()); - DistributionStockupSelfVO distributionStockup= new DistributionStockupSelfVO(); + DistributionStockupSelfVO distributionStockup = new DistributionStockupSelfVO(); AtomicReference y = new AtomicReference<>(0); distributionStockupSelfVOS.forEach(i -> { - if(ObjectUtils.isNull(i.getAllocationId())){ + if (ObjectUtils.isNull(i.getAllocationId())) { y.updateAndGet(v -> v + i.getScanNum()); - if(ObjectUtils.isNull(distributionStockup.getConsignee())){ + if (ObjectUtils.isNull(distributionStockup.getConsignee())) { distributionStockup.setConsignee(i.getConsignee()); - }else{ - if(ObjectUtils.isNotNull(i.getConsignee()) && !distributionStockup.getConsignee().contains(i.getConsignee()) ){ + } else { + if (ObjectUtils.isNotNull(i.getConsignee()) && !distributionStockup.getConsignee().contains(i.getConsignee())) { String s = distributionStockup.getConsignee() + i.getConsignee(); distributionStockup.setConsignee(s); } } - if(ObjectUtils.isNull(distributionStockup.getTrays())){ + if (ObjectUtils.isNull(distributionStockup.getTrays())) { distributionStockup.setTrays(i.getTrays()); - }else{ - if(ObjectUtils.isNotNull(i.getTrays()) && !distributionStockup.getTrays().contains(i.getTrays())){ - String s = distributionStockup.getTrays() +","+ i.getTrays(); + } else { + if (ObjectUtils.isNotNull(i.getTrays()) && !distributionStockup.getTrays().contains(i.getTrays())) { + String s = distributionStockup.getTrays() + "," + i.getTrays(); distributionStockup.setTrays(s); } } @@ -1487,7 +1502,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl list = distributionParcelListService.selectOrderInfoSelfList(stockupDTO); Iterator iterator = list.iterator(); AtomicReference j = new AtomicReference<>(0); - if(Objects.isNull(stockupDTO.getAllocationId())){ + if (Objects.isNull(stockupDTO.getAllocationId())) { - while (iterator.hasNext()){ + while (iterator.hasNext()) { j.updateAndGet(v -> v + 1); PackageStockupVO next = iterator.next(); - if(ObjectUtils.isNotNull(next.getAllocationId()) ){ + if (ObjectUtils.isNotNull(next.getAllocationId())) { iterator.remove(); continue; } @@ -1515,11 +1530,11 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl v + 1); PackageStockupVO next = iterator.next(); - if(ObjectUtils.isNull(next.getPositionCode()) ){ + if (ObjectUtils.isNull(next.getPositionCode())) { iterator.remove(); continue; } @@ -1565,7 +1580,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl distributionStockupVOIPage = baseMapper.detailOrderOwn(page, id); distributionStockupVOIPage.getRecords().forEach(o -> { if (ObjectUtils.isNotNull(o.getStockArticleId())) { - Integer integer = distributionStockService.selectCount(Long.parseLong(o.getStockArticleId()),id); + Integer integer = distributionStockService.selectCount(Long.parseLong(o.getStockArticleId()), id); o.setNumber(integer); } }); @@ -1583,7 +1598,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl getInventoryOwn(IPage page, Long id) { IPage l = new Page<>(); List inventoryChe = baseMapper.getInventoryChe(id); - if(ObjectUtils.isNotNull(inventoryChe) && ObjectUtils.isNotNull(inventoryChe.get(0))){ + if (ObjectUtils.isNotNull(inventoryChe) && ObjectUtils.isNotNull(inventoryChe.get(0))) { boolean b = inventoryChe.stream().anyMatch(i -> i.getReservationStockListNum() > 0); if (b) { //查询库存品 @@ -1591,7 +1606,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl list = distributionStockListService.selectStockListInfoList(reservationId, stockListId); entity.setStockList(list); @@ -1650,7 +1665,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl list = distributionStockListService.selectStockListInfoSelfList(reservationId, stockListId); entity.setStockList(list); return entity; @@ -1697,6 +1712,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl list = new ArrayList<>(); - if(ObjectUtils.isNotNull(one)){ - if(one.getStockUpType().equals("3")){ + if (ObjectUtils.isNotNull(one)) { + if (one.getStockUpType().equals("3")) { //自提 - list = distrilbutionBillStockService.listPackageSelf(stockupDTO.getReservationId()); - }else{ + list = distrilbutionBillStockService.listPackageSelf(stockupDTO.getReservationId()); + } else { // 市,自 //查询包件信息 - list = distributionReservationPackageService.listPackage(stockupDTO.getReservationId()); + list = distributionReservationPackageService.listPackage(stockupDTO.getReservationId()); } - }else { + } else { log.warn("预约信息不存在!"); return Resp.scanFail(PdaAudioLingoStatus.yuyuebuzai.getName(), PdaAudioLingoStatus.yuyuebuzai.getName()); } - if(list.size() < 1){ + if (list.size() < 1) { log.warn("包件信息不存在!"); return Resp.scanFail(PdaAudioLingoStatus.baojianbucunzai.getName(), PdaAudioLingoStatus.baojianbucunzai.getName()); } //查询托盘上面的包件 - List trayIdList = warehouseTrayGoodsClient.getTrayIdList(stockupDTO.getTrayId(),stockupDTO.getTrayBarCode()); + List trayIdList = warehouseTrayGoodsClient.getTrayIdList(stockupDTO.getTrayId(), stockupDTO.getTrayBarCode()); List voList = new ArrayList<>(); List finalList = list; - if(trayIdList.isEmpty()){ + if (trayIdList.isEmpty()) { return Resp.scanFail("托盘信息错误!!!", "托盘信息错误!!!"); } List trayIdListCode = trayIdList.stream().filter(i -> i.getTrayCode().equals(stockupDTO.getTrayBarCode())).collect(Collectors.toList()); @@ -1786,7 +1802,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl l.getParcelListId().equals(t.getAssociationId())); if (b) { finalList.stream().forEach(i -> { - if(i.getParcelListId().equals(t.getAssociationId())){ + if (i.getParcelListId().equals(t.getAssociationId())) { DistributionStockPackageVO distributionStockPackageVO = i; log.warn("找到了匹配的对象:" + distributionStockPackageVO); voList.add(distributionStockPackageVO); @@ -1806,7 +1822,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl { //查询是否已备货 DistributionParcelListEntity byId = distributionParcelListService.getById(i.getParcelListId()); - if(ObjectUtils.isNotNull(byId) && !byId.getOrderPackageStockupStatus().equals(OrderPackageStockupStatusConstant.yibeihu.getValue())){ + if (ObjectUtils.isNotNull(byId) && !byId.getOrderPackageStockupStatus().equals(OrderPackageStockupStatusConstant.yibeihu.getValue())) { fa.set(true); DistributionStockEntity distributionStock = new DistributionStockEntity(); //修改包件备货状态 @@ -1817,11 +1833,11 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl collect = voList.stream().map(DistributionStockPackageVO::getParcelListId).collect(Collectors.toList()); boolean update = distributionParcelListService.update(Wrappers.lambdaUpdate() .in(DistributionParcelListEntity::getId, collect) .set(DistributionParcelListEntity::getOrderPackageStockupStatus, OrderPackageStockupStatusConstant.yibeihu.getValue()) ); - if(!update){ + if (!update) { log.info("包件备货信息修改失败!!"); throw new ServiceException("包件备货信息修改失败!!"); } //判断备货任务是否完成 - if(one.getStockUpType().equals("3")){ - distributionAsyncService.stockupSelfUpdateState(stockupDTO,list1.size()); - }else{ - distributionAsyncService.stockupUpdateState(stockupDTO,list1.size()); + if (one.getStockUpType().equals("3")) { + distributionAsyncService.stockupSelfUpdateState(stockupDTO, list1.size()); + } else { + distributionAsyncService.stockupUpdateState(stockupDTO, list1.size()); } distributionStockService.saveBatch(list1); } int i = list1.isEmpty() ? 0 : list1.size(); - return Resp.scanSuccess("整托拣货"+i+"件","整托拣货"+i+"件"); + return Resp.scanSuccess("整托拣货" + i + "件", "整托拣货" + i + "件"); } } @@ -1931,7 +1947,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl trayIdList = warehouseTrayGoodsClient.getTrayIdList(i.getTrayId().toString(),trayIdCode); + List trayIdList = warehouseTrayGoodsClient.getTrayIdList(i.getTrayId().toString(), trayIdCode); if (trayPackNum.equals(trayIdList.size())) { trays.set(true); } @@ -1978,7 +1994,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); - if(stockupDTO.getOrderCode().contains(",")){ + if (stockupDTO.getOrderCode().contains(",")) { stockupDTO.setOrderCodeList(stockupDTO.getOrderCode().split(",")); - queryWrapper.in("order_self_numbering",stockupDTO.getOrderCodeList()); + queryWrapper.in("order_self_numbering", stockupDTO.getOrderCodeList()); stockupDTO.setOrderCode(null); - }else{ - queryWrapper.eq("order_self_numbering",orderCode); + } else { + queryWrapper.eq("order_self_numbering", orderCode); } String packetBarCode = stockupDTO.getPacketBarCode(); Integer integer = baseMapper.selectPackageExist(stockupDTO); //查询包件信息 if (ObjectUtils.isNotNull(integer) && integer > 0) { //存在 - queryWrapper.eq("coding",packetBarCode); - queryWrapper.eq("stockup_id",stockupId); - queryWrapper.eq("reservation_id",reservationId); + queryWrapper.eq("coding", packetBarCode); + queryWrapper.eq("stockup_id", stockupId); + queryWrapper.eq("reservation_id", reservationId); List list = distributionStockService.list(queryWrapper); if (!list.isEmpty()) { //重复扫码 @@ -2068,7 +2084,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImplquery().lambda() .eq(DisStockOrdercodeRecoEntity::getCode, stockupDTO.getPacketBarCode()) ); - if(ObjectUtils.isNotNull(one) && one.getCodeStatus().equals("1")){ + if (ObjectUtils.isNotNull(one) && one.getCodeStatus().equals("1")) { return 8; } //查询仓库信息 库存品信息 @@ -2211,57 +2228,57 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl list = distributionParcelListService.list(Wrappers.query().lambda() - .eq(DistributionParcelListEntity::getOrderPackageCode, stockupDTO.getPacketBarCode()) - .eq(DistributionParcelListEntity::getOrderPackageStockupStatus, OrderPackageStockupStatusConstant.daibeihuo.getValue()) - .eq(DistributionParcelListEntity::getWarehouseId, byId.getWarehouseId()) - ); - if(list.isEmpty()){ - return 7; - } - //查询包件信息与库存品选择物料是否一样 - if(!byId.getMaterialId().equals(list.get(0).getMaterialId())){ - //不一样 - return 10; - } + switch (stockupDTO.getStockPrint()) { + case 1: + //查询原有的包件码有没有操作 + List list = distributionParcelListService.list(Wrappers.query().lambda() + .eq(DistributionParcelListEntity::getOrderPackageCode, stockupDTO.getPacketBarCode()) + .eq(DistributionParcelListEntity::getOrderPackageStockupStatus, OrderPackageStockupStatusConstant.daibeihuo.getValue()) + .eq(DistributionParcelListEntity::getWarehouseId, byId.getWarehouseId()) + ); + if (list.isEmpty()) { + return 7; + } + //查询包件信息与库存品选择物料是否一样 + if (!byId.getMaterialId().equals(list.get(0).getMaterialId())) { + //不一样 + return 10; + } + //绑定码 + disStockListDetail.setStockPackageCode(stockupDTO.getPacketBarCode()); + disStockListDetail.setId(list1.get(0).getId()); + break; + case 2: + //生成的扫描的包条码 + + //查询有没有生成的数据 + DisStockOrdercodeRecoEntity one1 = disStockOrdercodeRecoService.getOne(Wrappers.query().lambda() + .eq(DisStockOrdercodeRecoEntity::getCode, stockupDTO.getPacketBarCode()) + .eq(DisStockOrdercodeRecoEntity::getCodeStatus, "0") + ); + if (ObjectUtils.isNotNull(one1)) { //绑定码 disStockListDetail.setStockPackageCode(stockupDTO.getPacketBarCode()); disStockListDetail.setId(list1.get(0).getId()); + //修改包件码状态 + ordercodeRecoEntity.setCodeStatus("1"); + ordercodeRecoEntity.setId(one1.getId()); + disStockOrdercodeRecoService.updateById(ordercodeRecoEntity); break; - case 2: - //生成的扫描的包条码 - - //查询有没有生成的数据 - DisStockOrdercodeRecoEntity one1 = disStockOrdercodeRecoService.getOne(Wrappers.query().lambda() - .eq(DisStockOrdercodeRecoEntity::getCode, stockupDTO.getPacketBarCode()) - .eq(DisStockOrdercodeRecoEntity::getCodeStatus, "0") - ); - if (ObjectUtils.isNotNull(one1)) { - //绑定码 - disStockListDetail.setStockPackageCode(stockupDTO.getPacketBarCode()); - disStockListDetail.setId(list1.get(0).getId()); - //修改包件码状态 - ordercodeRecoEntity.setCodeStatus("1"); - ordercodeRecoEntity.setId(one1.getId()); - disStockOrdercodeRecoService.updateById(ordercodeRecoEntity); - break; - } else { - //包条码不存在 - return 7; - } - } - disStockListDetailService.updateById(disStockListDetail); //补充扫码数据 - return 1; + } else { + //包条码不存在 + return 7; + } + } + disStockListDetailService.updateById(disStockListDetail); //补充扫码数据 + return 1; } @@ -2298,13 +2315,13 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl getRoleList(String deptId, String tenantId) { List warehouseType = DictBizCache.getList("stock_personnel"); - if(warehouseType.isEmpty()){ + if (warehouseType.isEmpty()) { throw new ServiceException("注意,注意!拣货人员字典未配置!请配置!"); - }else{ + } else { List stringList = new ArrayList<>(); - warehouseType.stream().forEach(i ->{ + warehouseType.stream().forEach(i -> { R roleId = sysClient.getRoleIds(tenantId, i.getDictValue()); - if(ObjectUtils.isNotNull(roleId.getData())){ + if (ObjectUtils.isNotNull(roleId.getData())) { stringList.add(roleId.getData()); } }); @@ -2312,16 +2329,16 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl> listR = userSearchClient.listByRole(roleIds); BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse(); //有没有选择仓库信息 - if(ObjectUtils.isNotNull(myCurrentWarehouse)){ - if(!listR.getData().isEmpty()){ + if (ObjectUtils.isNotNull(myCurrentWarehouse)) { + if (!listR.getData().isEmpty()) { List collect = listR.getData().stream().filter(i -> ObjectUtils.isNotNull(i.getDeptId()) ? i.getDeptId().equals(myCurrentWarehouse.getDepartment().toString()) : false ).collect(Collectors.toList()); return collect; - }else{ + } else { return null; } - }else{ + } else { return listR.getData(); } @@ -2330,37 +2347,38 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl 0 ? Resp.scanSuccess("修改成功!","修改成功!") : Resp.scanFail("修改失败!","修改失败!"); - }else{ - return Resp.scanFail("备货区信息不存在!!!!","备货区信息不存在!!!!"); + return i > 0 ? Resp.scanSuccess("修改成功!", "修改成功!") : Resp.scanFail("修改失败!", "修改失败!"); + } else { + return Resp.scanFail("备货区信息不存在!!!!", "备货区信息不存在!!!!"); } } /** * 查询货位数据 */ - public WarehouseUpdownGoodsEntity getAllocationInfo(Long allocationId,String orderCode,Long warehouseId){ + public WarehouseUpdownGoodsEntity getAllocationInfo(Long allocationId, String orderCode, Long warehouseId) { //查询货位信息 WarehouseUpdownGoodsEntity updownGoodsEntity = new WarehouseUpdownGoodsEntity(); updownGoodsEntity.setAssociationType("1"); @@ -2370,36 +2388,37 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl zeroStockUpData;; + //把数据取出来 + List zeroStockUpData; + ; - if(stockupDTO.getTypeService().equals("3")){ - //自提 - if(ObjectUtils.isNull(stockupDTO.getAllocationId())){ - //没有货位 + if (stockupDTO.getTypeService().equals("3")) { //自提 - zeroStockUpData = distributionStockupService.getZeroStockUpDataMeiSelf(stockupDTO); - }else{ - //有 - zeroStockUpData = distributionStockupService.getZeroStockUpDataYouSelf(stockupDTO); - } - } else { - //商 ,市 - if(ObjectUtils.isNull(stockupDTO.getAllocationId())){ - //没有货位 - zeroStockUpData = distributionStockupService.getZeroStockUpDataMei(stockupDTO); - }else{ - //有 - zeroStockUpData = distributionStockupService.getZeroStockUpDataYou(stockupDTO); + if (ObjectUtils.isNull(stockupDTO.getAllocationId())) { + //没有货位 + //自提 + zeroStockUpData = distributionStockupService.getZeroStockUpDataMeiSelf(stockupDTO); + } else { + //有 + zeroStockUpData = distributionStockupService.getZeroStockUpDataYouSelf(stockupDTO); + } + } else { + //商 ,市 + if (ObjectUtils.isNull(stockupDTO.getAllocationId())) { + //没有货位 + zeroStockUpData = distributionStockupService.getZeroStockUpDataMei(stockupDTO); + } else { + //有 + zeroStockUpData = distributionStockupService.getZeroStockUpDataYou(stockupDTO); + } } - } - int xiugai= 0; + int xiugai = 0; List collect = stockupDTO.getList().stream().filter( //可以 a -> zeroStockUpData.stream().anyMatch(q -> q.getStockArticleId().equals(a.getStockArticleId()) && a.getQuantity() <= q.getQuantity() && a.getQuantity() > 0) - ).collect(Collectors.toList()); + ).collect(Collectors.toList()); //添加备货信息 List stockEntityList = new ArrayList<>(); - List jsonObjectList = new ArrayList<>(); + List jsonObjectList = new ArrayList<>(); for (StockupZeroVO i : collect) { JSONObject jsonObject = new JSONObject(); - jsonObject.put("warehouseId",myCurrentWarehouse.getId()); + jsonObject.put("warehouseId", myCurrentWarehouse.getId()); //查询是不是当前包件 DistributionReservationZeroPackageEntity byId1 = reservationZeroPackageService.getById(i.getId()); - if(ObjectUtils.isNull(byId1)){ + if (ObjectUtils.isNull(byId1)) { continue; } DistributionStockArticleEntity stockArticle = distributionStockArticleService.getById(byId1.getStockArticleId()); - if(ObjectUtils.isNull(stockArticle)){ + if (ObjectUtils.isNull(stockArticle)) { throw new ServiceException("订单数据不存在!!"); } - jsonObject.put("orderCode",stockArticle.getOrderCode()); - jsonObject.put("waybillCode",stockArticle.getWaybillNumber()); + jsonObject.put("orderCode", stockArticle.getOrderCode()); + jsonObject.put("waybillCode", stockArticle.getWaybillNumber()); //查询备货信息 QueryWrapper queryWrapper = new QueryWrapper<>(); - if(stockupDTO.getTypeService().equals("3")){ - queryWrapper.eq("bill_lading_id",stockupDTO.getReservationId()); - }else{ - queryWrapper.eq("reservation_id",stockupDTO.getReservationId()); + if (stockupDTO.getTypeService().equals("3")) { + queryWrapper.eq("bill_lading_id", stockupDTO.getReservationId()); + } else { + queryWrapper.eq("reservation_id", stockupDTO.getReservationId()); } //查询有没有备货过 - queryWrapper.eq("stock_article",i.getStockArticleId()); - queryWrapper.eq("stockup_id",stockupDTO.getStockupId()); + queryWrapper.eq("stock_article", i.getStockArticleId()); + queryWrapper.eq("stockup_id", stockupDTO.getStockupId()); queryWrapper.eq("parcel_list_id", byId1.getParcelListId()); - DistributionStockEntity one = distributionStockService.getOne(queryWrapper ); + DistributionStockEntity one = distributionStockService.getOne(queryWrapper); //查询备货数量 // DistributionReservationZeroPackageEntity byId = reservationZeroPackageService.getById(i.getId()); - if(i.getQuantity() > byId1.getQuantity()){ - return Resp.scanFail(i.getCategoryName()+"备货数量大于待备货数量!",i.getCategoryName()+"备货数量大于待备货数量!"); + if (i.getQuantity() > byId1.getQuantity()) { + return Resp.scanFail(i.getCategoryName() + "备货数量大于待备货数量!", i.getCategoryName() + "备货数量大于待备货数量!"); } Optional first = stockupDTO.getList().stream().filter(q -> i.getStockArticleId().equals(q.getStockArticleId()) && q.getQuantity() <= i.getQuantity() && q.getQuantity() > 0).findFirst(); - if(ObjectUtils.isNotNull(one)){ + if (ObjectUtils.isNotNull(one)) { //修改数量 DistributionStockEntity stockEntity = new DistributionStockEntity(); stockEntity.setId(one.getId()); stockEntity.setStockQuantity(first.get().getQuantity()); int i1 = first.get().getQuantity() - first.get().getRealityQuantity(); //这次备货的数量 - jsonObject.put("enterNum",i1); + jsonObject.put("enterNum", i1); distributionStockService.updateById(stockEntity); - }else{ + } else { DistributionStockEntity stockEntity = new DistributionStockEntity(); stockEntity.setStockArticle(i.getStockArticleId()); stockEntity.setStockupId(stockupDTO.getStockupId()); stockEntity.setParcelListId(byId1.getParcelListId()); - if(stockupDTO.getTypeService().equals("3")){ + if (stockupDTO.getTypeService().equals("3")) { stockEntity.setBillLadingId(stockupDTO.getReservationId()); - }else{ + } else { stockEntity.setReservationId(stockupDTO.getReservationId()); } stockEntity.setConditions("2"); @@ -2507,11 +2527,11 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl list = new ArrayList<>(); - if(ObjectUtils.isNull(stockupDTO.getAllocationId())){ + if (ObjectUtils.isNull(stockupDTO.getAllocationId())) { //没有货位信息 //有没有多个订单数据 - if(stockupDTO.getStockArticleId().contains(",")){ + if (stockupDTO.getStockArticleId().contains(",")) { stockupDTO.setStockArticleIdList(stockupDTO.getStockArticleId().split(",")); stockupDTO.setStockArticleId(null); } - if(stockupDTO.getTypeService().equals("3")){ + if (stockupDTO.getTypeService().equals("3")) { //自提 list = distributionStockupService.getZeroStockUpDataMeiSelf(stockupDTO); } else { //商, 市 list = distributionStockupService.getZeroStockUpDataMei(stockupDTO); } - }else{ + } else { //有货位信息 //有没有多个订单数据 - if(stockupDTO.getOrderCode().contains(",")){ + if (stockupDTO.getOrderCode().contains(",")) { stockupDTO.setOrderCodeList(stockupDTO.getOrderCode().split(",")); stockupDTO.setOrderCode(null); } - if(stockupDTO.getTypeService().equals("3")){ + if (stockupDTO.getTypeService().equals("3")) { //自提 list = distributionStockupService.getZeroStockUpDataYouSelf(stockupDTO); } else { @@ -2601,7 +2622,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl{ + list.stream().forEach(i -> { DistributionStockArticleEntity byId = distributionStockArticleService.getById(i.getStockArticleId()); i.setOrderCode(byId.getOrderCode()); }); @@ -2613,13 +2634,13 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl idArr = null; - if (null != ids && !ids.toString().equals("")){ + if (null != ids && !ids.toString().equals("")) { idArr = Arrays.asList(paramMap.get("ids").toString().split(",")); } @@ -2653,13 +2674,13 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl idArr = null; - if (null != ids && !ids.toString().equals("")){ + if (null != ids && !ids.toString().equals("")) { idArr = Arrays.asList(paramMap.get("ids").toString().split(",")); } @@ -2692,13 +2713,13 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl idArr = null; - if (null != ids && !ids.toString().equals("")){ + if (null != ids && !ids.toString().equals("")) { idArr = Arrays.asList(paramMap.get("ids").toString().split(",")); } @@ -2729,27 +2750,169 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl trayIdList = warehouseTrayGoodsClient.getTrayIdList(vo.getTrayId(), vo.getPallet()); AtomicBoolean f = new AtomicBoolean(true); trayIdList.stream().collect(Collectors.groupingBy(WarehouseTrayGoodsEntity::getTrayId)). - forEach((k,v) ->{ + forEach((k, v) -> { // List di = new ArrayList<>(); // AtomicReference s = new AtomicReference<>(0); //已扫数量 - v.stream().forEach( i ->{ + v.stream().forEach(i -> { DistributionParcelListEntity byId = distributionParcelListService.getById(i.getAssociationId()); - if(!vo.getStockArticleId().contains(byId.getStockArticleId().toString())){ + if (!vo.getStockArticleId().contains(byId.getStockArticleId().toString())) { f.set(false); } }); - }); + }); return f.get(); } + @Override + public DistributionStockListEntity selectStockListInfoByCargoNumberList(Long reservationId, String cargoNumber, Long allocationId, String orderPackageCode) { + + + // 查询预约单上的商城 + DistributionReservationEntity distributionReservationEntity = distributionReservationMapper.selectById(reservationId); + //查询货位上物料信息 + // todo + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + + R r = warehouseUpdownTypeClient.findAllGoodsByAllocationId(allocationId, myCurrentWarehouse.getId()); + + String incomingBatches = null; + if (r.getData() != null) { + // 得到这个货位上的货物 + String s = (String) r.getData(); + JSONArray jsonArray = JSONObject.parseArray(s); + log.info(">>>>>>>>>>>>>>> 货位上的货物信息 {}", jsonArray); + + if (jsonArray != null) { + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + WarehouseUpdownGoodsEntity warehouseUpdownGoodsEntity = JSONObject.parseObject(jsonObject.toJSONString(), WarehouseUpdownGoodsEntity.class); + if (warehouseUpdownGoodsEntity.getAssociationType().equals("3")&&warehouseUpdownGoodsEntity.getAssociationValue().equals(orderPackageCode) ) { + // 得到的的是包件 通过包件 查询 通过包件码查询 + Map map =distributionStockListInfoMapper.selectDistributionStockByOrderPackageCodeAndWarehourseIdAndCargoNumber(warehouseUpdownGoodsEntity.getAssociationValue(),warehouseUpdownGoodsEntity.getWarehouseId(),cargoNumber); + if(ObjectUtils.isNotNull(map)){ + incomingBatches=map.get("incoming_batch").toString(); + break; + } + + } + + } + + } + + } + + if (!incomingBatches.isEmpty()) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper(); + lambdaQueryWrapper.eq(DistributionStockListEntity::getIncomingBatch, incomingBatches); + lambdaQueryWrapper.eq(DistributionStockListEntity::getCargoNumber, cargoNumber); + lambdaQueryWrapper.eq(DistributionStockListEntity::getMarketName, distributionReservationEntity.getMallName()); + // 入库 时间先进的先出 + lambdaQueryWrapper.orderByAsc(DistributionStockListEntity::getCreateTime); + DistributionStockListEntity distributionStockListEntities = distributionStockListMapper.selectOne(lambdaQueryWrapper); + + return distributionStockListEntities; + + } + + return null; + } + + @Override + public Long selectStockListInfoByCargoNumber(Long reservationId, String cargoNumber, Long allocationId) { + + // 查询预约单上的商城 + DistributionReservationEntity distributionReservationEntity = distributionReservationMapper.selectById(reservationId); + //查询货位上物料信息 + // todo + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + +// R updownTypeInforByAllocationId = warehouseUpdownTypeClient.findUpdownTypeInforByAllocationId(allocationId, myCurrentWarehouse.getId()); + R r = warehouseUpdownTypeClient.findAllGoodsByAllocationId(allocationId, myCurrentWarehouse.getId()); + + List incomingBatches = new ArrayList<>(); + if (r.getData() != null) { + // 得到这个货位上的货物 + String s = (String) r.getData(); + JSONArray jsonArray = JSONObject.parseArray(s); + log.info(">>>>>>>>>>>>>>> 货位上的货物信息 {}", jsonArray); + + if (jsonArray != null) { + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + WarehouseUpdownGoodsEntity warehouseUpdownGoodsEntity = JSONObject.parseObject(jsonObject.toJSONString(), WarehouseUpdownGoodsEntity.class); + if (warehouseUpdownGoodsEntity.getAssociationType().equals("4")) { + // 无数据库存品 + if (cargoNumber.equals(warehouseUpdownGoodsEntity.getAssociationValue()) && warehouseUpdownGoodsEntity.getMarketId().equals(distributionReservationEntity.getMallId())) { + incomingBatches.add(warehouseUpdownGoodsEntity.getIncomingBatch()); + } + } + + } + + } + + } + + // 查询库存品表 采用批次 + 物料编码定位 + if (!incomingBatches.isEmpty()) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper(); + lambdaQueryWrapper.in(DistributionStockListEntity::getIncomingBatch, incomingBatches); + lambdaQueryWrapper.eq(DistributionStockListEntity::getCargoNumber, cargoNumber); + lambdaQueryWrapper.eq(DistributionStockListEntity::getMarketName, distributionReservationEntity.getMallName()); + // 入库 时间先进的先出 + lambdaQueryWrapper.orderByAsc(DistributionStockListEntity::getCreateTime); + List distributionStockListEntities = distributionStockListMapper.selectList(lambdaQueryWrapper); + return distributionStockListEntities.get(0).getId(); + + } + return null; + } + + + @Override + public StockConfigInfoVO stockConfigList(StockupDTO stockupDTO) { + + + // 查询预约单的上的信息 + + StockConfigInfoVO stockConfigInfoVO = new StockConfigInfoVO(); + DistributionReservationEntity reservationEntity = distributionReservationService.getById(stockupDTO.getReservationId()); //预约信息 + stockConfigInfoVO.setCustomer(reservationEntity.getConsignee()); //客户0 + stockConfigInfoVO.setAddress(reservationEntity.getDeliveryAddress()); //地址 + + + List ls = new ArrayList<>(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(DistributionStockEntity::getReservationId, stockupDTO.getReservationId()); + lambdaQueryWrapper.eq(DistributionStockEntity::getAllocationId, stockupDTO.getAllocationId()); + lambdaQueryWrapper.eq(DistributionStockEntity::getType, 2); + lambdaQueryWrapper.eq(DistributionStockEntity::getStockupId, stockupDTO.getStockupId()); + List distributionStockEntities = distributionStockMapper.selectList(lambdaQueryWrapper); + for (DistributionStockEntity distributionStockEntity : distributionStockEntities) { + StockConfigOrderPackageListVO stockConfigOrderPackageListVO = new StockConfigOrderPackageListVO(); + stockConfigOrderPackageListVO.setCode(distributionStockEntity.getCoding()); + stockConfigOrderPackageListVO.setNum(1); + stockConfigOrderPackageListVO.setCreateTime(distributionStockEntity.getCreateTime()); + // 查询批次 + DistributionStockListEntity distributionStockListEntity = distributionStockListMapper.selectById(distributionStockEntity.getStockListId()); + stockConfigOrderPackageListVO.setIncomingBatch(distributionStockListEntity.getIncomingBatch()); + ls.add(stockConfigOrderPackageListVO); + } + + stockConfigInfoVO.setStockConfigOrderPackageListVOS(ls); + return stockConfigInfoVO; + + } } diff --git a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/LocationMapper.xml b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/LocationMapper.xml index 415aca879..36a9f2145 100644 --- a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/LocationMapper.xml +++ b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/LocationMapper.xml @@ -9,7 +9,6 @@ from ht_location l where l.shelf_id = #{shelfId} and l.delete_time = 0 - and l.`status` = 1 diff --git a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/CargoServiceImpl.java b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/CargoServiceImpl.java index 007a8ff1f..766ebfbeb 100644 --- a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/CargoServiceImpl.java +++ b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/CargoServiceImpl.java @@ -19,8 +19,7 @@ public class CargoServiceImpl implements ICargoService { public List getAllByWarehouseId(Integer oldWarehouseId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("warehouse_id",oldWarehouseId) - .eq("delete_time",0) - .eq("status",1); + .eq("delete_time",0); return cargoMapper.selectList(queryWrapper); } } diff --git a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/LocationServiceImpl.java b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/LocationServiceImpl.java index b40ba6904..f2bc3fc27 100644 --- a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/LocationServiceImpl.java +++ b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/LocationServiceImpl.java @@ -25,8 +25,7 @@ public class LocationServiceImpl implements ILocationService { public List getAllByShelfId(Integer shelfId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("shelf_id",shelfId) - .eq("delete_time",0) - .eq("status",1); + .eq("delete_time",0); return locationMapper.selectList(queryWrapper); } } diff --git a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/ShelfServiceImpl.java b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/ShelfServiceImpl.java index 12f346e31..09786e3c0 100644 --- a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/ShelfServiceImpl.java +++ b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/ShelfServiceImpl.java @@ -20,7 +20,6 @@ public class ShelfServiceImpl implements IShelfService { public List getAllByWarehouseIdAndCargoId(Integer cargoId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("cargo_id",cargoId) - .eq("status",1) .eq("delete_time",0); return shelfMapper.selectList(queryWrapper); } diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncWarehouseData.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncWarehouseData.java index bc9a41a18..70f2dee58 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncWarehouseData.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncWarehouseData.java @@ -66,6 +66,9 @@ public class SyncWarehouseData { //通过老系统仓库id去查有哪些货区 List cargoEntityList = cargoClient.getAllByWarehouseId(oldWarehouseId); + Map areaIsEmptyMap = new HashMap<>(); + areaIsEmptyMap.put(1,1); + areaIsEmptyMap.put(0,2); for (CargoEntity cargoEntity:cargoEntityList){ //货区数据存储 Integer cargoId = cargoEntity.getId();//老系统货区id @@ -76,7 +79,7 @@ public class SyncWarehouseData { goodsAreaEntity.setCreateDept(1649331096241836033L); goodsAreaEntity.setWarehouseId(newWarehouseId); goodsAreaEntity.setHeadline(cargoEntity.getTitle()); - goodsAreaEntity.setEnableStatus("1"); + goodsAreaEntity.setEnableStatus(areaIsEmptyMap.get(cargoEntity.getStatus())+""); goodsAreaEntity.setAreaType("2"); goodsAreaEntity.setOldId(cargoId); Long newAreaId = basicdataGoodsAreaClient.addCargo(goodsAreaEntity); @@ -105,7 +108,7 @@ public class SyncWarehouseData { goodsShelfEntity.setWarehouseId(newWarehouseId); goodsShelfEntity.setWarehouseCode(warehouseEntity.getWarehouseCode()); goodsShelfEntity.setGoodsShelfStatus(2); - goodsShelfEntity.setEnableStatus(1); + goodsShelfEntity.setEnableStatus(shelfIsEmptyMap.get(shelfEntity.getStatus())); goodsShelfEntity.setStoreyNum(storeyAndRow.get("storey")); goodsShelfEntity.setRowNum(storeyAndRow.get("row")); goodsShelfEntity.setRemarks(""); @@ -115,14 +118,26 @@ public class SyncWarehouseData { log.warn("#################saveAllocationData: 保存货架信息失败oldShelfId={},oldWarehouseId={}",oldShelfId,oldWarehouseId); return false; }else{ + int maxFloor = 0; + int maxRow = 0; //货位数据存储 Map locationIsEmptyMap = new HashMap<>(); - locationIsEmptyMap.put(1,2); - locationIsEmptyMap.put(0,1); + locationIsEmptyMap.put(1,1); + locationIsEmptyMap.put(0,2); List locationEntities = locationClient.getAllByShelfId(oldShelfId); // List newLocations = new ArrayList<>(); for (LocationEntity locationEntity:locationEntities){ Integer locationId = locationEntity.getId(); + String title = locationEntity.getTitle(); + String[] split = title.split("-"); + int floor = Integer.parseInt(split[0]); + int row = Integer.parseInt(split[1]); + if(floor > maxFloor){ + maxFloor = floor; + } + if(row > maxRow){ + maxRow = row; + } BasicdataGoodsAllocationEntity entity = new BasicdataGoodsAllocationEntity(); entity.setTenantId("627683"); entity.setId(locationId.longValue()); @@ -133,11 +148,11 @@ public class SyncWarehouseData { entity.setGoodsAllocationName(locationEntity.getTitle()); entity.setWarehouseId(newWarehouseId); entity.setGoodsShelfId(newShelfId); - entity.setEnableStatus("1"); + entity.setEnableStatus(locationIsEmptyMap.get(locationEntity.getStatus())+""); entity.setAllocationStatus("1"); - entity.setLayerNum(locationEntity.getFloor()); - entity.setColumnNum(locationEntity.getRow()); - entity.setQrCode(shelfEntity.getTitle()+"排"+locationEntity.getFloor()+"层"+locationEntity.getRow()+"列"); + entity.setLayerNum(floor); + entity.setColumnNum(row); + entity.setQrCode(shelfEntity.getTitle()+"排"+floor+"层"+row+"列"); entity.setOldId(locationId); Long newLocationId = basicdataGoodsAllocationClient.addLocation(entity); if(Objects.isNull(newLocationId)){ @@ -147,6 +162,7 @@ public class SyncWarehouseData { log.info("#################saveAllocationData: 保存货位信息成功locationId={},oldWarehouseId={}",locationId,oldWarehouseId); } } + basicdataGoodsShelfClient.updateRowAndFloorByShelfId(maxFloor,maxRow,newShelfId); } } } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTaskApiController.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTaskApiController.java index ba3cb2ee4..c4a08d7fe 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTaskApiController.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTaskApiController.java @@ -151,6 +151,25 @@ public class WarehouseTaskApiController { return r; } + /** + * 删除盘点数据 + */ + @DeleteMapping("/deleteQuestChild") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "删除盘点数据", notes = "code,type") + public R deleteQuestChild(@RequestBody TaskSearchDTO taskSearchDTO) { + + if(ObjectUtils.isNull(taskSearchDTO.getQuestNum())){ + return R.fail("任务编码不能为空"); + } + if(ObjectUtils.isNull(taskSearchDTO.getQuestId())){ + return R.fail("任务ID不能为空"); + } + + R r = taskQuestService.deleteQuestChild(taskSearchDTO); + return r; + } + diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/TaskQuestController.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/TaskQuestController.java index c7c21e5d9..907e2faf3 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/TaskQuestController.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/TaskQuestController.java @@ -16,8 +16,11 @@ */ package com.logpm.warehouse.controller; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.logpm.warehouse.dto.QuestDetailDTO; import com.logpm.warehouse.dto.TaskQuestDTO; +import com.logpm.warehouse.dto.TaskSearchDTO; +import com.logpm.warehouse.excel.QuestContrastExcel; import com.logpm.warehouse.vo.QuestContrastVO; import com.logpm.warehouse.vo.QuestDetailVO; import com.logpm.warehouse.wrapper.TaskQuestVOWrapper; @@ -80,6 +83,7 @@ public class TaskQuestController extends BladeController { /** * 盘点任务 任务下的包条 */ +/* @GetMapping("/SelectStrip") @ApiOperationSupport(order = 1) @ApiOperation(value = "盘点任务 任务下的包条", notes = "传入taskQuest") @@ -87,32 +91,52 @@ public class TaskQuestController extends BladeController { IPage list = taskQuestService.selectStrip(Condition.getPage(query),id); return R.data(list); } +*/ /** * 盘点任务 任务下的库存品 */ - @GetMapping("/SelectInventory") +/* @GetMapping("/SelectInventory") @ApiOperationSupport(order = 1) @ApiOperation(value = "盘点任务 任务下的库存品", notes = "传入id") public R> SelectInventory(Long id,Query query) { IPage list = taskQuestService.selectInventory(Condition.getPage(query),id); return R.data(list); - } + }*/ /** * 盘点任务 任务下的零担 */ - @GetMapping("/SelectZreo") + /*@GetMapping("/SelectZreo") @ApiOperationSupport(order = 1) @ApiOperation(value = "盘点任务 任务下的零担", notes = "传入id") public R> SelectZero(Long id,Query query) { IPage list = taskQuestService.selectZero(Condition.getPage(query),id); return R.data(list); + }*/ + + /** + * 删除盘点数据 + */ + @DeleteMapping("/deleteQuestChild") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "删除盘点数据", notes = "code,type") + public R deleteQuestChild(@RequestBody TaskSearchDTO taskSearchDTO) { + + if(ObjectUtils.isNull(taskSearchDTO.getQuestNum())){ + return R.fail("任务编码不能为空"); + } + if(ObjectUtils.isNull(taskSearchDTO.getQuestId())){ + return R.fail("任务ID不能为空"); + } + + R r = taskQuestService.deleteQuestChild(taskSearchDTO); + return r; } /** - * 查询盘点数据 + * 查询盘点明细数据 * @return */ @GetMapping("/getDetailInfo") @@ -135,6 +159,38 @@ public class TaskQuestController extends BladeController { return R.data(page); } + + /** + * 查询盘点对比数据 + * @return + */ + @GetMapping("/export-getContrastInfo") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "导出数据 盘点对比数据", notes = "传入questDetailDTO") + public void exportGetContrastInfo(QuestDetailDTO questDetailDTO, HttpServletResponse response){ + List list = taskQuestService.exportGetContrastInfo(questDetailDTO); + ExcelUtil.export(response, "盘点任务数据" + DateUtil.time(), "盘点任务对比明细数据表", list, QuestContrastExcel.class); + + } + + /** + * 导出数据 + */ +// @GetMapping("/export-taskQuest") +// @ApiOperationSupport(order = 9) +// @ApiOperation(value = "导出数据", notes = "传入taskQuest") +// public void exportTaskQuest(@ApiIgnore @RequestParam Map taskQuest, BladeUser bladeUser, HttpServletResponse response) { +// QueryWrapper queryWrapper = Condition.getQueryWrapper(taskQuest, TaskQuestEntity.class); +// //if (!AuthUtil.isAdministrator()) { +// // queryWrapper.lambda().eq(TaskQuest::getTenantId, bladeUser.getTenantId()); +// //} +// queryWrapper.lambda().eq(TaskQuestEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); +// List list = taskQuestService.exportTaskQuest(queryWrapper); +// ExcelUtil.export(response, "盘点任务数据" + DateUtil.time(), "盘点任务数据表", list, TaskQuestExcel.class); +// } + + + /** * 修改盘点数据 * @return @@ -213,6 +269,22 @@ public class TaskQuestController extends BladeController { return R.status(taskQuestService.updateQuestInfo(questDetailDTO)); } + /** + * 盘点任务 盘点后的数据查询 + */ + @GetMapping("/getQuestChildInfo") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入taskQuest") + public R selectQuestChildInfo( QuestDetailDTO questDetailDTO) { + if(ObjectUtils.isNull(questDetailDTO.getQuestNum())){ + return R.fail("任务编号不能为空"); + } + if(ObjectUtils.isNull(questDetailDTO.getId())){ + return R.fail("包件数据Id不能为空!!"); + } + return R.data(taskQuestService.selectQuestChildInfo(questDetailDTO)); + } + /** * 盘点任务 修改时间 */ diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/excel/QuestContrastExcel.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/excel/QuestContrastExcel.java new file mode 100644 index 000000000..804df5bea --- /dev/null +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/excel/QuestContrastExcel.java @@ -0,0 +1,134 @@ +package com.logpm.warehouse.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +import java.util.Date; + +@Data +public class QuestContrastExcel { + + /** + * 订单自编号 + */ + @ColumnWidth(20) + @ExcelProperty("订单自编号") + private String orderCode; + /** + * 品牌名称 + */ + @ColumnWidth(20) + @ExcelProperty("品牌名称") + private String brandName; + /** + * 入库批次号 + */ + @ColumnWidth(20) + @ExcelProperty("入库批次号") + private String incomingBatch; + /** + * 商场 名称 + */ + @ColumnWidth(20) + @ExcelProperty("商场名称") + private String mallName; + /*** + * 客户名称 + */ + @ColumnWidth(20) + @ExcelProperty("客户名称") + private String customerName; + /** + * 三级名称 + */ + @ColumnWidth(20) + @ExcelProperty("三级名称") + private String thirdProduct; + /** + * 物料名称 + */ + @ColumnWidth(20) + @ExcelProperty("物料名称") + private String materialName; + /** + * 总件数 + */ + @ColumnWidth(20) + @ExcelProperty("总件数") + private Integer totalNumber; + /** + * 在库数据 + */ + @ColumnWidth(20) + @ExcelProperty("在库数据") + private Integer handQuantity; + /** + * 所在托盘 + */ + @ColumnWidth(20) + @ExcelProperty("所在托盘") + private String pallet; + /** + * 货物信息 + */ + @ColumnWidth(20) + @ExcelProperty("货物信息") + private String goodsAllocation; + /** + * 盘点人 + */ + @ColumnWidth(20) + @ExcelProperty("盘点人") + private String updateUser; + /** + * 盘点时间 + */ + /* @ColumnWidth(20) + @ExcelProperty("盘点时间") + private Date updateTime;*/ + + /** + * 盘点时间 + */ + @ColumnWidth(20) + @ExcelProperty("盘点时间") + private String updateTimes; + /** + * 盘点数据 + */ + @ColumnWidth(20) + @ExcelProperty("盘点数据") + private Integer questNum; + /** + * 差异数 + */ + @ColumnWidth(20) + @ExcelProperty("差异数") + private Integer differenceNum; + /** + * 托盘码 + */ + @ColumnWidth(20) + @ExcelProperty("托盘码") + private String trayCode; + + @ColumnWidth(20) + @ExcelProperty("货区-货架-货位") + private String positionCode; + + /** + * 更新的货物信息 + */ + @ColumnWidth(20) + @ExcelProperty("更新的货位") + private String groundingPositionCode; + /** + * 货物状态 + */ + @ColumnWidth(20) + @ExcelProperty("货物状态") + private String questStatusName; + + +} diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseGoodsAllocationClient.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseGoodsAllocationClient.java index e65dcfad7..68b198329 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseGoodsAllocationClient.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseGoodsAllocationClient.java @@ -27,6 +27,10 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + /** * 货位 Feign实现类 * @@ -55,5 +59,15 @@ public class WarehouseGoodsAllocationClient implements IWarehouseGoodsAllocation public Boolean updateAllocationCache(String ids) { return warehouseGoodsAllocationService.updateAllocationCache(ids); } + @GetMapping(TOP+ "/getAllocationInforByIds") + @Override + public List getAllocationInforByIds(String [] ids) { + List lss = new ArrayList<>(); + for (String id : ids) { + lss.add(Long.parseLong(id)); + } + + return warehouseGoodsAllocationService.listByIds(lss); + } } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseUpdownTypeClient.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseUpdownTypeClient.java index 03ce1c3e7..5397c18b4 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseUpdownTypeClient.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseUpdownTypeClient.java @@ -21,6 +21,8 @@ import com.logpm.warehouse.dto.UpShelfPackageDTO; import com.logpm.warehouse.dto.UpShelfStockDTO; import com.logpm.warehouse.dto.UpShelfZeroOrderDTO; import com.logpm.warehouse.service.IWarehouseUpdownTypeService; +import com.logpm.warehouse.vo.TragetAllocationVO; +import com.logpm.warehouse.vo.UpShelfAllocationVO; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.tool.api.R; @@ -164,4 +166,16 @@ public class WarehouseUpdownTypeClient implements IWarehouseUpdownTypeClient { public boolean packageChangeStock(List orderPackageCodes) { return warehouseUpdownTypeService.packageChangeStock(orderPackageCodes); } + + @Override + public R findUpdownTypeInforByAllocationId(Long allocationId, Long warehouseId) { + UpShelfAllocationVO upShelfAllocationVO = warehouseUpdownTypeService.upShelfScanAllocation(allocationId, warehouseId); + + return R.data(JSONObject.toJSONString(upShelfAllocationVO)); + } + + @Override + public R findAllGoodsByAllocationId(Long allocationId, Long warehouseId) { + return warehouseUpdownTypeService.findAllGoodsByAllocationId(allocationId,warehouseId); + } } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.java index 3bbb70af9..9c38dced5 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.java @@ -159,4 +159,6 @@ public interface TaskQuestMapper extends BaseMapper { * @return */ List selectContrastDataInfo(@Param("questNum")String questNum,@Param("param")QuestDetailEntity questDetail); + + Integer deleteQuestChild(@Param("questNum")String questNum, @Param("questDetailId")String i); } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.xml b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.xml index b43d22b52..9705432b3 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.xml +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/TaskQuestMapper.xml @@ -28,7 +28,9 @@ SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); - + + delete from ${questNum} where quest_detail_id = #{questDetailId} + @@ -116,9 +119,13 @@ `material_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物料名称(库存品)', `waybill_number` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '运单号', PRIMARY KEY (`id`) USING BTREE, - INDEX `quest_id_index`(`quest_id`) USING BTREE COMMENT '任务id', + INDEX `quest_id_index`(`quest_id`,`tenant_id`) USING BTREE COMMENT '任务id', INDEX `order_id_index`(`order_id`) USING BTREE COMMENT '订单id', - INDEX `tenant_id_index`(`tenant_id`) USING BTREE COMMENT '租户id' + INDEX `allocation_id_index`(`allocation_id`) USING BTREE, + INDEX `order_package_id_index`(`order_package_id`) USING BTREE, + INDEX `order_package_code_index`(`order_package_code`) USING BTREE, + INDEX `tray_index`(`tray_code`, `tray_id`) USING BTREE, + INDEX `quest_target_index`(`quest_target`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '${questNum}盘点明细' ROW_FORMAT = Dynamic; @@ -218,7 +225,7 @@ GROUP_CONCAT(DISTINCT p.tray_id) trayId ,GROUP_CONCAT(DISTINCT p.position_code) positionCode,SUM(p.stock_num) handQuantity ,ldsa.total_number totalNumber,GROUP_CONCAT(DISTINCT p.allocation_id) allocationId,GROUP_CONCAT(DISTINCT p.update_user) updateUser ,GROUP_CONCAT(DISTINCT p.grounding_position_code) groundingPositionCode,GROUP_CONCAT(DISTINCT p.quest_status) questStatus, - GROUP_CONCAT(DISTINCT p.update_time) updateTime + GROUP_CONCAT(DISTINCT p.update_time) updateTimes from ${questNum} p LEFT JOIN logpm_distribution_parcel_list ldpl on p.order_package_id = ldpl.id LEFT JOIN logpm_distribution_stock_article ldsa on ldsa.id = ldpl.stock_article_id @@ -255,7 +262,7 @@ grounding_allocation_id = #{item.groundingAllocationId}, grounding_position_code = #{item.groundingPositionCode }, - quest_status = #{item.questStatus }, + quest_status = #{item.questStatus }, order_code= #{item.orderCode }, order_package_code= #{item.orderPackageCode }, category_name = #{item.categoryName }, @@ -341,6 +348,7 @@ + and end_time > now() and ltq.quest_status !=2 and ltq.quest_status !=3 ORDER BY ltq.start_time desc