diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java index 03e6aaf05..6950f2931 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java @@ -31,6 +31,7 @@ import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import lombok.extern.log4j.Log4j2; import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; @@ -175,4 +176,30 @@ public class DistributionBillLadingAppController extends BladeController { } + @PostMapping("/addReceivedImage") + @ApiOperation(value = "添加自提单签收图片") + public R updateReceivedImage(@RequestBody BillLadingAppDTO billLadingAppDTO) { + log.debug("=====签收图片自提签收:{}",billLadingAppDTO); + if (ObjectUtils.isNull(billLadingAppDTO.getBillLadingId())) { + return R.fail(3002, "自提id不能为空 !"); + } + if(ObjectUtils.isNull(billLadingAppDTO.getPrintList()) || billLadingAppDTO.getPrintList().isEmpty()){ + throw new ServiceException("图片对象不能为空!!"); + } + R b = distrilbutionBillLadingService.updateReceivedImage(billLadingAppDTO); + return b; + } + + @GetMapping("/getReceivedImage") + @ApiOperation(value = "查询自提单签收图片") + public R getReceivedImage(@RequestBody BillLadingAppDTO billLadingAppDTO) { + log.debug("=====查询自提单签收图片:{}",billLadingAppDTO); + if (ObjectUtils.isNull(billLadingAppDTO.getBillLadingId())) { + return R.fail(3002, "自提id不能为空 !"); + } + R b = distrilbutionBillLadingService.getReceivedImage(billLadingAppDTO); + return b; + } + + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/BillLadingAppDTO.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/BillLadingAppDTO.java index 3bfa7a534..a6faa9fc9 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/BillLadingAppDTO.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/app/BillLadingAppDTO.java @@ -1,5 +1,6 @@ package com.logpm.distribution.dto.app; +import com.logpm.distribution.dto.DistrilbutionBillLadingDTO; import com.logpm.distribution.entity.DistributionParcelListEntity; import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingZeroVO; import lombok.Data; @@ -28,4 +29,16 @@ public class BillLadingAppDTO implements Serializable { private List list; //零担数据集合 private DistrilbutionAppBillLadingZeroVO billLadingZeroVO; //单个数据 + private List printList; + + @Data + public static class Print{ + private Long id; //id 已有 + private String state; //类型 1.提货证件 2.文员确认 3.库管签收 + private String name; //名称 + private String url; //路径 + + } + + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java index 6738872a6..053065452 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java @@ -199,4 +199,17 @@ public interface IDistrilbutionBillLadingService extends BaseService printEntityList = distributionPrintService.list(Wrappers.query().lambda() + .eq(DistributionPrintEntity::getBillLadingId, billLadingAppDTO.getBillLadingId()) + ); + List addList = new ArrayList<>(); //添加的图片 + + ListIterator distributionPrintEntityListIterator = printEntityList.listIterator(); + //添加图片 + billLadingAppDTO.getPrintList().stream().collect(Collectors.groupingBy(BillLadingAppDTO.Print::getState)) + .forEach((k,v) ->{ + + List aid = v.stream().filter(i -> ObjectUtils.isNull(i.getId())).collect(Collectors.toList());//添加的图片 + addList.addAll(aid); + + List uid = v.stream().filter(i -> ObjectUtils.isNotNull(i.getId())).collect(Collectors.toList()); //保存的图片 + uid.forEach(q ->{ + //处理不需要的图片 + while (distributionPrintEntityListIterator.hasNext()){ + DistributionPrintEntity next = distributionPrintEntityListIterator.next(); + if(q.getId().equals(next.getId())){ + distributionPrintEntityListIterator.remove(); + } + } + }); + }); + //清除需要删除的图片 + if(!printEntityList.isEmpty()){ + List collect = printEntityList.stream().map(DistributionPrintEntity::getId).collect(Collectors.toList()); + distributionPrintService.deleteLogic(collect); + } + //新增 + List list2 = new ArrayList<>(); + billLadingAppDTO.getPrintList().forEach(print -> { + DistributionPrintEntity distributionPrintEntity = new DistributionPrintEntity(); + distributionPrintEntity.setBillLadingId(billLadingAppDTO.getBillLadingId()); + distributionPrintEntity.setGenre(Integer.parseInt(print.getState())); + distributionPrintEntity.setSite(print.getUrl()); + distributionPrintEntity.setSiteName(print.getName()); + list2.add(distributionPrintEntity); + }); + + return R.status(distributionPrintService.saveBatch(list2)); + } + + /** + * 查询自提签收图片 + * @param billLadingAppDTO + * @return + */ + @Override + public R getReceivedImage(BillLadingAppDTO billLadingAppDTO) { + + List list = distributionPrintService.list(Wrappers.query().lambda() + .eq(DistributionPrintEntity::getBillLadingId, billLadingAppDTO.getBillLadingId()) + ); + Map> map = new HashMap<>(); + if(!list.isEmpty()){ + List list1 = new ArrayList<>(); + list.forEach(i ->{ + BillLadingAppDTO.Print print = new BillLadingAppDTO.Print(); + print.setId(i.getId()); + print.setUrl(i.getSite()); + print.setName(i.getSiteName()); + print.setState(String.valueOf(i.getGenre())); + list1.add(print); + }); + map.put("list",list1); + return R.data(map); + } + map.put("list",null); + return R.data(map); + } + /** * 修改订单状态