diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/buscenterfile/BuscenterFileEnum.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/buscenterfile/BuscenterFileEnum.java index 0a731f7fdd..5d5fb1a003 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/buscenterfile/BuscenterFileEnum.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/buscenterfile/BuscenterFileEnum.java @@ -24,8 +24,8 @@ public enum BuscenterFileEnum { GDLETTER_DOWNLOADURL("015", "股东会对外担保决议"), ZJLLETTER_DOWNLOADURL("016", "总经理担保书"), TCALL_DOWNLOADURL("018", "欠款提车附件"), - DISCOUNTPACKAGE_HANDOVER("017","优惠包交接确认") - ; + DISCOUNTPACKAGE_HANDOVER("017", "优惠包交接确认"), + ENTRUST_IDCARD_IMAGES("019", "委托提车授权书、委托人身份证(正反面)"); /** diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDetailDto.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDetailDto.java new file mode 100644 index 0000000000..307777d5f2 --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDetailDto.java @@ -0,0 +1,46 @@ +package com.yxt.anrui.buscenter.api.bushandover; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yxt.anrui.buscenter.api.bushandoveritems.BusHandoverItemListDetailsDto; +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.util.Date; +import java.util.List; + +/** + * @author Administrator + * @description + * @date 2023/6/6 9:34 + */ +@Data +public class BusHandoverDetailDto implements Dto { + @ApiModelProperty("记录sid") + private String sid; + @ApiModelProperty("合同编号") + private String contractNo; + @ApiModelProperty("车型") + private String modelName; + @ApiModelProperty("交付日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date deliverDate; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("身份证号") + private String idNo; + @ApiModelProperty("交付地点") + private String deliverAddress; + @ApiModelProperty("接收人") + private String recipient; + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("接收车辆确认书照片") + private List items; + @ApiModelProperty("接收车辆确认书照片") + private List receiveCarImages; + @ApiModelProperty("委托提车授权书、委托人身份证(正反面)") + private List entrustImages; + @ApiModelProperty("交车资料确认单") + private List entrustConfirmImages; + @ApiModelProperty("出门证照片") + private List exitTicketImages; +} diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDetailVo.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDetailVo.java new file mode 100644 index 0000000000..0b42d8350b --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDetailVo.java @@ -0,0 +1,51 @@ +package com.yxt.anrui.buscenter.api.bushandover; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yxt.anrui.buscenter.api.bushandoveritems.BusHandoverItemListDetailsVo; +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @author Administrator + * @description + * @date 2023/6/6 9:06 + */ +@Data +public class BusHandoverDetailVo implements Vo { + + @ApiModelProperty("记录sid") + private String sid; + @ApiModelProperty("合同编号") + private String contractNo; + @ApiModelProperty("车型") + private String modelName; + @ApiModelProperty("交付日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date deliverDate; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("身份证号") + private String idNo; + @ApiModelProperty("交付地点") + private String deliverAddress; + @ApiModelProperty("接收人") + private String recipient; + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("接收车辆确认书照片") + private List items; + @ApiModelProperty("接收车辆确认书照片") + private List receiveCarImages; + @ApiModelProperty("委托提车授权书、委托人身份证(正反面)") + private List entrustImages; + @ApiModelProperty("交车资料确认单") + private List entrustConfirmImages; + @ApiModelProperty("出门证照片") + private List exitTicketImages; + +} diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeign.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeign.java index 159beeaac4..d5f17ea82b 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeign.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeign.java @@ -49,14 +49,20 @@ public interface BusHandoverFeign { ResultBean saveOrUpdateBusHandover(@RequestBody BusHandoverDeliveryDto dto) throws Exception; + @ApiOperation("办理查看回显") + @GetMapping("/fetchDetailsBySid/{sid}") + @ResponseBody + public ResultBean fetchDetailsBySid(@PathVariable String sid); + + @ApiOperation("上传照片") + @PostMapping("/uploadPicture") + @ResponseBody + public ResultBean uploadPicture(@RequestBody BusHandoverDetailDto dto); + @ApiOperation("打印接收车辆确认书、出门证、交车资料确认单") @PostMapping("/createPdf") ResultBean> createPdf(@RequestParam("sid") String sid); -// @ApiOperation("打印出门证") -// @PostMapping("/exitPermit") -// ResultBean exitPermit(String sid); -// /* @ApiOperation("根据条件分页查询数据的列表") diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeignFallback.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeignFallback.java index 3910be113c..886b474b80 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeignFallback.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeignFallback.java @@ -37,15 +37,20 @@ public class BusHandoverFeignFallback implements BusHandoverFeign { return null; } + @Override + public ResultBean fetchDetailsBySid(String sid) { + return null; + } + + @Override + public ResultBean uploadPicture(BusHandoverDetailDto dto) { + return null; + } + @Override public ResultBean> createPdf(String sid) { return null; } -// -// @Override -// public ResultBean exitPermit(String sid) { -// return null; -// } @Override public ResultBean> saveDeliverybill(BusHandoverDto dto) { diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemListDetailsDto.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemListDetailsDto.java new file mode 100644 index 0000000000..534be5b83d --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemListDetailsDto.java @@ -0,0 +1,21 @@ +package com.yxt.anrui.buscenter.api.bushandoveritems; + +import com.yxt.common.core.dto.Dto; +import lombok.Data; + +import java.util.List; + +/** + * @author Administrator + * @description + * @date 2023/6/6 9:33 + */ +@Data +public class BusHandoverItemListDetailsDto implements Dto { + private String sid; + private String vinNo; + //交车照片 + private List handoverPhoto; + //保单 + private List policyPhoto; +} diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemListDetailsVo.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemListDetailsVo.java new file mode 100644 index 0000000000..12f083e6d3 --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemListDetailsVo.java @@ -0,0 +1,22 @@ +package com.yxt.anrui.buscenter.api.bushandoveritems; + +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +import java.util.List; + +/** + * @author Administrator + * @description + * @date 2023/6/6 9:10 + */ +@Data +public class BusHandoverItemListDetailsVo implements Vo { + + private String sid; + private String vinNo; + //交车照片 + private List handoverPhoto; + //保单 + private List policyPhoto; +} diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverRest.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverRest.java index c929f1dddf..729159edc4 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverRest.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverRest.java @@ -47,15 +47,21 @@ public class BusHandoverRest implements BusHandoverFeign { return busHandoverService.saveOrUpdateBusHandover(dto); } + @Override + public ResultBean fetchDetailsBySid(String sid) { + return busHandoverService.fetchDetailsBySid(sid); + } + + @Override + public ResultBean uploadPicture(BusHandoverDetailDto dto) { + return busHandoverService.uploadPicture(dto); + } + @Override public ResultBean> createPdf(String sid) { return busHandoverService.createPdf(sid); } -// @Override -// public ResultBean exitPermit(String sid) { -// return busHandoverService.exitPermit(sid); -// } @Override public ResultBean> saveDeliverybill(BusHandoverDto dto) { diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java index 5bdd846c5f..b69106efa2 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java @@ -1092,75 +1092,6 @@ public class BusHandoverService extends MybatisBaseService exitPermit(String sid) { -// ResultBean rb = ResultBean.fireFail(); -// BusHandover busHandover = fetchBySid(sid); -// BusExitPermitVo permitVo = new BusExitPermitVo(); -// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); -// if (StringUtils.isNotBlank(busHandover.getUseOrgName())) { -// permitVo.setOrgName(busHandover.getUseOrgName()); -// } -// if (StringUtils.isNotBlank(sdf.format(busHandover.getDeliverDate()))) { -// permitVo.setDate(sdf.format(busHandover.getDeliverDate())); -// } -// if (StringUtils.isNotBlank(busHandover.getCreateBySid())) { -// SysUser sysUser = sysUserFeign.selectBySid(busHandover.getCreateBySid()).getData(); -// SysStaffinfoDetailsVo staffinfoDetailsVo = sysStaffinfoFeign.fetchBySid(sysUser.getStaffSid()).getData(); -// permitVo.setApply(staffinfoDetailsVo.getName()); -// } -// if (StringUtils.isNotBlank(busHandover.getContractNo())) { -// permitVo.setContract(busHandover.getContractNo()); -// List invoices = finVehicleInvoiceFeign.selectByContractNo(busHandover.getContractNo()).getData(); -// if (!invoices.isEmpty()) { -// for (FinVehicleInvoice invoice : invoices) { -// permitVo.setFinOperator(invoice.getDrawer()); -// } -// } -// } -// if (StringUtils.isNotBlank(busHandover.getCustomerName())) { -// permitVo.setName(busHandover.getCustomerName()); -// } -// if (StringUtils.isNotBlank(busHandover.getCarNum())) { -// permitVo.setNumber(busHandover.getCarNum()); -// } -// if (StringUtils.isNotBlank(busHandover.getStaffSid())) { -// SysStaffinfoDetailsVo staffinfoDetailsVo = sysStaffinfoFeign.fetchBySid(busHandover.getStaffSid()).getData(); -// permitVo.setOperator(staffinfoDetailsVo.getName()); -// } -// if (StringUtils.isNotBlank(busHandover.getPayTypeValue())) { -// if ("全款".equals(busHandover.getPayTypeValue())) { -// permitVo.setReason("全款交车"); -// } else if ("贷款".equals(busHandover.getPayTypeValue())) { -// permitVo.setReason("消贷交车"); -// } -// } -// StringBuffer sbVin = new StringBuffer(); -// StringBuffer sbModel = new StringBuffer(); -// List items = busHandoverItemsService.getItemsListByMainSid(sid).getData(); -// if (!items.isEmpty()) { -// for (BusHandoverItems item : items) { -// String vinNo = item.getVinNo(); -// sbVin.append(vinNo).append(","); -// String modelName = item.getModelName(); -// BaseVehicleSelectVo vehicle = baseVehicleFeign.details(item.getVinSid()).getData(); -// BaseModelConfigSelectVo configSelectVo = baseModelConfigFeign.details(vehicle.getModelConfigSid()).getData(); -// String carColor = configSelectVo.getCarColor(); -// sbModel.append(modelName + carColor).append(","); -// } -// } -// sbVin.delete(sbVin.length() - 1, sbVin.length()); -// sbModel.delete(sbModel.length() - 1, sbModel.length()); -// permitVo.setVinNo(sbVin.toString()); -// permitVo.setModelName(sbModel.toString()); -// String s = exitPermitCreatePdf(permitVo); -// return rb.success().setData(s); -// } /** * 打印《出门证》 @@ -1243,6 +1174,128 @@ public class BusHandoverService extends MybatisBaseService fetchDetailsBySid(String sid) { + ResultBean rb = ResultBean.fireFail(); + BusHandover busHandover = fetchBySid(sid); + BusHandoverDetailVo vo = new BusHandoverDetailVo(); + BeanUtil.copyProperties(busHandover, vo); + List items = new ArrayList<>(); + //查询车辆 + List itemsList = busHandoverItemsService.getItemsListByMainSid(sid).getData(); + itemsList.removeAll(Collections.singleton(null)); + for (BusHandoverItems v : itemsList) { + BusHandoverItemListDetailsVo detailsVo = new BusHandoverItemListDetailsVo(); + String handoverPhoto = v.getHandoverPhoto(); + String policyPhoto = v.getPolicyPhoto(); + BeanUtil.copyProperties(v, detailsVo); + if (StringUtils.isNotBlank(handoverPhoto)) { + List stringList = Arrays.asList(handoverPhoto.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); + detailsVo.setHandoverPhoto(stringList); + } + if (StringUtils.isNotBlank(policyPhoto)) { + List policyPhotoList = Arrays.asList(policyPhoto.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); + detailsVo.setPolicyPhoto(policyPhotoList); + } + items.add(detailsVo); + } + vo.setItems(items); + //接收车辆确认书照片 + List fileList = buscenterFileService.selectByLinkSid(sid, BuscenterFileEnum.RECEIVE_CAR_IMAGES.getAttachType()); + fileList.removeAll(Collections.singleton(null)); + if (!fileList.isEmpty()) { + List receiveCarImages = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). + collect(Collectors.toList()); + vo.setReceiveCarImages(receiveCarImages); + } + //委托提车授权书、委托人身份证(正反面) + fileList = buscenterFileService.selectByLinkSid(sid, BuscenterFileEnum.ENTRUST_IDCARD_IMAGES.getAttachType()); + fileList.removeAll(Collections.singleton(null)); + if (!fileList.isEmpty()) { + List entrustImages = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList()); + vo.setEntrustImages(entrustImages); + } + //交车资料确认单 + fileList = buscenterFileService.selectByLinkSid(sid, BuscenterFileEnum.ENTRUST_CONFIRM_IMAGES.getAttachType()); + fileList.removeAll(Collections.singleton(null)); + if (!fileList.isEmpty()) { + List entrustConfirmImages = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList()); + vo.setEntrustConfirmImages(entrustConfirmImages); + } + //出门证照片 + fileList = buscenterFileService.selectByLinkSid(sid, BuscenterFileEnum.EXIT_TICKET_IMAGES.getAttachType()); + fileList.removeAll(Collections.singleton(null)); + if (!fileList.isEmpty()) { + List exitTicketImages = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList()); + vo.setExitTicketImages(exitTicketImages); + } + return rb.success().setData(vo); + } + + /** + * 上传照片修改备注 + * + * @param dto + * @return + */ + public ResultBean uploadPicture(BusHandoverDetailDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + BusHandover entity = fetchBySid(sid); + String urlPrefix = fileUploadComponent.getUrlPrefix(); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + baseMapper.updateById(entity); + //保存交车照片、保单 + if (null != dto.getItems() && dto.getItems().size() > 0) { + StringBuffer sbHandoverPhoto = new StringBuffer(); + StringBuffer sbPolicyPhoto = new StringBuffer(); + for (BusHandoverItemListDetailsDto itemDto : dto.getItems()) { + BusHandoverItems items = busHandoverItemsService.fetchBySid(itemDto.getSid()); + if (!itemDto.getHandoverPhoto().isEmpty()) { + for (String path : itemDto.getHandoverPhoto()) { + String filePath = path.substring(urlPrefix.length()); + sbHandoverPhoto.append(filePath).append(","); + } + sbHandoverPhoto.delete(sbHandoverPhoto.length() - 1, sbHandoverPhoto.length()); + items.setHandoverPhoto(sbHandoverPhoto.toString()); + } + if (!itemDto.getPolicyPhoto().isEmpty()) { + for (String path : itemDto.getPolicyPhoto()) { + String filePath = path.substring(urlPrefix.length()); + sbPolicyPhoto.append(filePath).append(","); + } + sbPolicyPhoto.delete(sbPolicyPhoto.length() - 1, sbPolicyPhoto.length()); + items.setPolicyPhoto(sbPolicyPhoto.toString()); + } + busHandoverItemsService.updateById(items); + } + } + //删除附件表中关于该linkSid的文件 + buscenterFileService.deleteByLinkSid(sid); + List entrustConfirmImages = dto.getEntrustConfirmImages(); + if (!entrustConfirmImages.isEmpty()) { + buscenterFileService.saveAll(dto.getSid(), entrustConfirmImages, BuscenterFileEnum.ENTRUST_CONFIRM_IMAGES.getAttachType()); + } + List receiveCarImages = dto.getReceiveCarImages(); + if (!receiveCarImages.isEmpty()) { + buscenterFileService.saveAll(dto.getSid(), receiveCarImages, BuscenterFileEnum.RECEIVE_CAR_IMAGES.getAttachType()); + } + List entrustImages = dto.getEntrustImages(); + if (!entrustImages.isEmpty()) { + buscenterFileService.saveAll(dto.getSid(), entrustImages, BuscenterFileEnum.ENTRUST_IDCARD_IMAGES.getAttachType()); + } + List exitTicketImages = dto.getExitTicketImages(); + if (!exitTicketImages.isEmpty()) { + buscenterFileService.saveAll(dto.getSid(), exitTicketImages, BuscenterFileEnum.EXIT_TICKET_IMAGES.getAttachType()); + } + return rb.success().setData(dto.getSid()); + } +